Use die_errno() instead of die() when checking syscalls
Lots of die() calls did not actually report the kind of error, which can leave the user confused as to the real problem. Use die_errno() where we check a system/library call that sets errno on failure, or one of the following that wrap such calls: Function Passes on error from -------- -------------------- odb_pack_keep open read_ancestry fopen read_in_full xread strbuf_read xread strbuf_read_file open or strbuf_read_file strbuf_readlink readlink write_in_full xwrite Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d824cbba02
commit
0721c314a5
12
abspath.c
12
abspath.c
@ -41,13 +41,13 @@ const char *make_absolute_path(const char *path)
|
|||||||
|
|
||||||
if (*buf) {
|
if (*buf) {
|
||||||
if (!*cwd && !getcwd(cwd, sizeof(cwd)))
|
if (!*cwd && !getcwd(cwd, sizeof(cwd)))
|
||||||
die ("Could not get current working directory");
|
die_errno ("Could not get current working directory");
|
||||||
|
|
||||||
if (chdir(buf))
|
if (chdir(buf))
|
||||||
die ("Could not switch to '%s'", buf);
|
die_errno ("Could not switch to '%s'", buf);
|
||||||
}
|
}
|
||||||
if (!getcwd(buf, PATH_MAX))
|
if (!getcwd(buf, PATH_MAX))
|
||||||
die ("Could not get current working directory");
|
die_errno ("Could not get current working directory");
|
||||||
|
|
||||||
if (last_elem) {
|
if (last_elem) {
|
||||||
int len = strlen(buf);
|
int len = strlen(buf);
|
||||||
@ -63,7 +63,7 @@ const char *make_absolute_path(const char *path)
|
|||||||
if (!lstat(buf, &st) && S_ISLNK(st.st_mode)) {
|
if (!lstat(buf, &st) && S_ISLNK(st.st_mode)) {
|
||||||
len = readlink(buf, next_buf, PATH_MAX);
|
len = readlink(buf, next_buf, PATH_MAX);
|
||||||
if (len < 0)
|
if (len < 0)
|
||||||
die ("Invalid symlink: %s", buf);
|
die_errno ("Invalid symlink '%s'", buf);
|
||||||
if (PATH_MAX <= len)
|
if (PATH_MAX <= len)
|
||||||
die("symbolic link too long: %s", buf);
|
die("symbolic link too long: %s", buf);
|
||||||
next_buf[len] = '\0';
|
next_buf[len] = '\0';
|
||||||
@ -75,7 +75,7 @@ const char *make_absolute_path(const char *path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (*cwd && chdir(cwd))
|
if (*cwd && chdir(cwd))
|
||||||
die ("Could not change back to '%s'", cwd);
|
die_errno ("Could not change back to '%s'", cwd);
|
||||||
|
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
@ -109,7 +109,7 @@ const char *make_nonrelative_path(const char *path)
|
|||||||
} else {
|
} else {
|
||||||
const char *cwd = get_pwd_cwd();
|
const char *cwd = get_pwd_cwd();
|
||||||
if (!cwd)
|
if (!cwd)
|
||||||
die("Cannot determine the current working directory");
|
die_errno("Cannot determine the current working directory");
|
||||||
if (snprintf(buf, PATH_MAX, "%s/%s", cwd, path) >= PATH_MAX)
|
if (snprintf(buf, PATH_MAX, "%s/%s", cwd, path) >= PATH_MAX)
|
||||||
die("Too long path: %.*s", 60, path);
|
die("Too long path: %.*s", 60, path);
|
||||||
}
|
}
|
||||||
|
@ -220,7 +220,7 @@ int edit_patch(int argc, const char **argv, const char *prefix)
|
|||||||
launch_editor(file, NULL, NULL);
|
launch_editor(file, NULL, NULL);
|
||||||
|
|
||||||
if (stat(file, &st))
|
if (stat(file, &st))
|
||||||
die("Could not stat '%s'", file);
|
die_errno("Could not stat '%s'", file);
|
||||||
if (!st.st_size)
|
if (!st.st_size)
|
||||||
die("Empty patch. Aborted.");
|
die("Empty patch. Aborted.");
|
||||||
|
|
||||||
|
@ -2823,8 +2823,8 @@ static void add_index_file(const char *path, unsigned mode, void *buf, unsigned
|
|||||||
} else {
|
} else {
|
||||||
if (!cached) {
|
if (!cached) {
|
||||||
if (lstat(path, &st) < 0)
|
if (lstat(path, &st) < 0)
|
||||||
die("unable to stat newly created file %s",
|
die_errno("unable to stat newly created file '%s'",
|
||||||
path);
|
path);
|
||||||
fill_stat_cache_info(ce, &st);
|
fill_stat_cache_info(ce, &st);
|
||||||
}
|
}
|
||||||
if (write_sha1_file(buf, size, blob_type, ce->sha1) < 0)
|
if (write_sha1_file(buf, size, blob_type, ce->sha1) < 0)
|
||||||
@ -2913,7 +2913,7 @@ static void create_one_file(char *path, unsigned mode, const char *buf, unsigned
|
|||||||
++nr;
|
++nr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
die("unable to write file %s mode %o", path, mode);
|
die_errno("unable to write file '%s' mode %o", path, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void create_file(struct patch *patch)
|
static void create_file(struct patch *patch)
|
||||||
|
@ -13,10 +13,10 @@ static void create_output_file(const char *output_file)
|
|||||||
{
|
{
|
||||||
int output_fd = open(output_file, O_CREAT | O_WRONLY | O_TRUNC, 0666);
|
int output_fd = open(output_file, O_CREAT | O_WRONLY | O_TRUNC, 0666);
|
||||||
if (output_fd < 0)
|
if (output_fd < 0)
|
||||||
die("could not create archive file: %s ", output_file);
|
die_errno("could not create archive file '%s'", output_file);
|
||||||
if (output_fd != 1) {
|
if (output_fd != 1) {
|
||||||
if (dup2(output_fd, 1) < 0)
|
if (dup2(output_fd, 1) < 0)
|
||||||
die("could not redirect output");
|
die_errno("could not redirect output");
|
||||||
else
|
else
|
||||||
close(output_fd);
|
close(output_fd);
|
||||||
}
|
}
|
||||||
|
@ -2008,23 +2008,23 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con
|
|||||||
|
|
||||||
if (contents_from) {
|
if (contents_from) {
|
||||||
if (stat(contents_from, &st) < 0)
|
if (stat(contents_from, &st) < 0)
|
||||||
die("Cannot stat %s", contents_from);
|
die_errno("Cannot stat '%s'", contents_from);
|
||||||
read_from = contents_from;
|
read_from = contents_from;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (lstat(path, &st) < 0)
|
if (lstat(path, &st) < 0)
|
||||||
die("Cannot lstat %s", path);
|
die_errno("Cannot lstat '%s'", path);
|
||||||
read_from = path;
|
read_from = path;
|
||||||
}
|
}
|
||||||
mode = canon_mode(st.st_mode);
|
mode = canon_mode(st.st_mode);
|
||||||
switch (st.st_mode & S_IFMT) {
|
switch (st.st_mode & S_IFMT) {
|
||||||
case S_IFREG:
|
case S_IFREG:
|
||||||
if (strbuf_read_file(&buf, read_from, st.st_size) != st.st_size)
|
if (strbuf_read_file(&buf, read_from, st.st_size) != st.st_size)
|
||||||
die("cannot open or read %s", read_from);
|
die_errno("cannot open or read '%s'", read_from);
|
||||||
break;
|
break;
|
||||||
case S_IFLNK:
|
case S_IFLNK:
|
||||||
if (strbuf_readlink(&buf, read_from, st.st_size) < 0)
|
if (strbuf_readlink(&buf, read_from, st.st_size) < 0)
|
||||||
die("cannot readlink %s", read_from);
|
die_errno("cannot readlink '%s'", read_from);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
die("unsupported file type %s", read_from);
|
die("unsupported file type %s", read_from);
|
||||||
|
@ -220,13 +220,13 @@ static void copy_or_link_directory(struct strbuf *src, struct strbuf *dest)
|
|||||||
|
|
||||||
dir = opendir(src->buf);
|
dir = opendir(src->buf);
|
||||||
if (!dir)
|
if (!dir)
|
||||||
die("failed to open %s", src->buf);
|
die_errno("failed to open '%s'", src->buf);
|
||||||
|
|
||||||
if (mkdir(dest->buf, 0777)) {
|
if (mkdir(dest->buf, 0777)) {
|
||||||
if (errno != EEXIST)
|
if (errno != EEXIST)
|
||||||
die("failed to create directory %s", dest->buf);
|
die_errno("failed to create directory '%s'", dest->buf);
|
||||||
else if (stat(dest->buf, &buf))
|
else if (stat(dest->buf, &buf))
|
||||||
die("failed to stat %s", dest->buf);
|
die_errno("failed to stat '%s'", dest->buf);
|
||||||
else if (!S_ISDIR(buf.st_mode))
|
else if (!S_ISDIR(buf.st_mode))
|
||||||
die("%s exists and is not a directory", dest->buf);
|
die("%s exists and is not a directory", dest->buf);
|
||||||
}
|
}
|
||||||
@ -257,11 +257,11 @@ static void copy_or_link_directory(struct strbuf *src, struct strbuf *dest)
|
|||||||
if (!link(src->buf, dest->buf))
|
if (!link(src->buf, dest->buf))
|
||||||
continue;
|
continue;
|
||||||
if (option_local)
|
if (option_local)
|
||||||
die("failed to create link %s", dest->buf);
|
die_errno("failed to create link '%s'", dest->buf);
|
||||||
option_no_hardlinks = 1;
|
option_no_hardlinks = 1;
|
||||||
}
|
}
|
||||||
if (copy_file(dest->buf, src->buf, 0666))
|
if (copy_file(dest->buf, src->buf, 0666))
|
||||||
die("failed to copy file to %s", dest->buf);
|
die_errno("failed to copy file to '%s'", dest->buf);
|
||||||
}
|
}
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
}
|
}
|
||||||
|
@ -434,7 +434,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix)
|
|||||||
if (isatty(0))
|
if (isatty(0))
|
||||||
fprintf(stderr, "(reading log message from standard input)\n");
|
fprintf(stderr, "(reading log message from standard input)\n");
|
||||||
if (strbuf_read(&sb, 0, 0) < 0)
|
if (strbuf_read(&sb, 0, 0) < 0)
|
||||||
die("could not read log from standard input");
|
die_errno("could not read log from standard input");
|
||||||
hook_arg1 = "message";
|
hook_arg1 = "message";
|
||||||
} else if (logfile) {
|
} else if (logfile) {
|
||||||
if (strbuf_read_file(&sb, logfile, 0) < 0)
|
if (strbuf_read_file(&sb, logfile, 0) < 0)
|
||||||
@ -964,8 +964,9 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
|
|||||||
/* Finally, get the commit message */
|
/* Finally, get the commit message */
|
||||||
strbuf_reset(&sb);
|
strbuf_reset(&sb);
|
||||||
if (strbuf_read_file(&sb, git_path(commit_editmsg), 0) < 0) {
|
if (strbuf_read_file(&sb, git_path(commit_editmsg), 0) < 0) {
|
||||||
|
int saved_errno = errno;
|
||||||
rollback_index_files();
|
rollback_index_files();
|
||||||
die("could not read commit message");
|
die("could not read commit message: %s", strerror(saved_errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Truncate the message just before the diff, if any. */
|
/* Truncate the message just before the diff, if any. */
|
||||||
|
@ -119,7 +119,7 @@ static void handle_object(const unsigned char *sha1)
|
|||||||
|
|
||||||
printf("blob\nmark :%"PRIu32"\ndata %lu\n", last_idnum, size);
|
printf("blob\nmark :%"PRIu32"\ndata %lu\n", last_idnum, size);
|
||||||
if (size && fwrite(buf, size, 1, stdout) != 1)
|
if (size && fwrite(buf, size, 1, stdout) != 1)
|
||||||
die ("Could not write blob %s", sha1_to_hex(sha1));
|
die_errno ("Could not write blob '%s'", sha1_to_hex(sha1));
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
show_progress();
|
show_progress();
|
||||||
|
@ -368,7 +368,7 @@ int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix)
|
|||||||
if (inpath && strcmp(inpath, "-")) {
|
if (inpath && strcmp(inpath, "-")) {
|
||||||
in = fopen(inpath, "r");
|
in = fopen(inpath, "r");
|
||||||
if (!in)
|
if (!in)
|
||||||
die("cannot open %s", inpath);
|
die_errno("cannot open '%s'", inpath);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strbuf_read(&input, fileno(in), 0) < 0)
|
if (strbuf_read(&input, fileno(in), 0) < 0)
|
||||||
|
@ -217,7 +217,7 @@ static void check_unreachable_object(struct object *obj)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!(f = fopen(filename, "w")))
|
if (!(f = fopen(filename, "w")))
|
||||||
die("Could not open %s", filename);
|
die_errno("Could not open '%s'", filename);
|
||||||
if (obj->type == OBJ_BLOB) {
|
if (obj->type == OBJ_BLOB) {
|
||||||
enum object_type type;
|
enum object_type type;
|
||||||
unsigned long size;
|
unsigned long size;
|
||||||
|
@ -61,20 +61,20 @@ static void copy_templates_1(char *path, int baselen,
|
|||||||
memcpy(template + template_baselen, de->d_name, namelen+1);
|
memcpy(template + template_baselen, de->d_name, namelen+1);
|
||||||
if (lstat(path, &st_git)) {
|
if (lstat(path, &st_git)) {
|
||||||
if (errno != ENOENT)
|
if (errno != ENOENT)
|
||||||
die("cannot stat %s", path);
|
die_errno("cannot stat '%s'", path);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
exists = 1;
|
exists = 1;
|
||||||
|
|
||||||
if (lstat(template, &st_template))
|
if (lstat(template, &st_template))
|
||||||
die("cannot stat template %s", template);
|
die_errno("cannot stat template '%s'", template);
|
||||||
|
|
||||||
if (S_ISDIR(st_template.st_mode)) {
|
if (S_ISDIR(st_template.st_mode)) {
|
||||||
DIR *subdir = opendir(template);
|
DIR *subdir = opendir(template);
|
||||||
int baselen_sub = baselen + namelen;
|
int baselen_sub = baselen + namelen;
|
||||||
int template_baselen_sub = template_baselen + namelen;
|
int template_baselen_sub = template_baselen + namelen;
|
||||||
if (!subdir)
|
if (!subdir)
|
||||||
die("cannot opendir %s", template);
|
die_errno("cannot opendir '%s'", template);
|
||||||
path[baselen_sub++] =
|
path[baselen_sub++] =
|
||||||
template[template_baselen_sub++] = '/';
|
template[template_baselen_sub++] = '/';
|
||||||
path[baselen_sub] =
|
path[baselen_sub] =
|
||||||
@ -91,16 +91,17 @@ static void copy_templates_1(char *path, int baselen,
|
|||||||
int len;
|
int len;
|
||||||
len = readlink(template, lnk, sizeof(lnk));
|
len = readlink(template, lnk, sizeof(lnk));
|
||||||
if (len < 0)
|
if (len < 0)
|
||||||
die("cannot readlink %s", template);
|
die_errno("cannot readlink '%s'", template);
|
||||||
if (sizeof(lnk) <= len)
|
if (sizeof(lnk) <= len)
|
||||||
die("insanely long symlink %s", template);
|
die("insanely long symlink %s", template);
|
||||||
lnk[len] = 0;
|
lnk[len] = 0;
|
||||||
if (symlink(lnk, path))
|
if (symlink(lnk, path))
|
||||||
die("cannot symlink %s %s", lnk, path);
|
die_errno("cannot symlink '%s' '%s'", lnk, path);
|
||||||
}
|
}
|
||||||
else if (S_ISREG(st_template.st_mode)) {
|
else if (S_ISREG(st_template.st_mode)) {
|
||||||
if (copy_file(path, template, st_template.st_mode))
|
if (copy_file(path, template, st_template.st_mode))
|
||||||
die("cannot copy %s to %s", template, path);
|
die_errno("cannot copy '%s' to '%s'", template,
|
||||||
|
path);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
error("ignoring template %s", template);
|
error("ignoring template %s", template);
|
||||||
@ -350,7 +351,7 @@ static int guess_repository_type(const char *git_dir)
|
|||||||
if (!strcmp(".", git_dir))
|
if (!strcmp(".", git_dir))
|
||||||
return 1;
|
return 1;
|
||||||
if (!getcwd(cwd, sizeof(cwd)))
|
if (!getcwd(cwd, sizeof(cwd)))
|
||||||
die("cannot tell cwd");
|
die_errno("cannot tell cwd");
|
||||||
if (!strcmp(git_dir, cwd))
|
if (!strcmp(git_dir, cwd))
|
||||||
return 1;
|
return 1;
|
||||||
/*
|
/*
|
||||||
@ -440,11 +441,11 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
|
|||||||
if (!git_work_tree_cfg) {
|
if (!git_work_tree_cfg) {
|
||||||
git_work_tree_cfg = xcalloc(PATH_MAX, 1);
|
git_work_tree_cfg = xcalloc(PATH_MAX, 1);
|
||||||
if (!getcwd(git_work_tree_cfg, PATH_MAX))
|
if (!getcwd(git_work_tree_cfg, PATH_MAX))
|
||||||
die ("Cannot access current working directory.");
|
die_errno ("Cannot access current working directory");
|
||||||
}
|
}
|
||||||
if (access(get_git_work_tree(), X_OK))
|
if (access(get_git_work_tree(), X_OK))
|
||||||
die ("Cannot access work tree '%s'",
|
die_errno ("Cannot access work tree '%s'",
|
||||||
get_git_work_tree());
|
get_git_work_tree());
|
||||||
}
|
}
|
||||||
|
|
||||||
set_git_dir(make_absolute_path(git_dir));
|
set_git_dir(make_absolute_path(git_dir));
|
||||||
|
@ -1013,8 +1013,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
|||||||
if (use_stdout)
|
if (use_stdout)
|
||||||
die("standard output, or directory, which one?");
|
die("standard output, or directory, which one?");
|
||||||
if (mkdir(output_directory, 0777) < 0 && errno != EEXIST)
|
if (mkdir(output_directory, 0777) < 0 && errno != EEXIST)
|
||||||
die("Could not create directory %s",
|
die_errno("Could not create directory '%s'",
|
||||||
output_directory);
|
output_directory);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rev.pending.nr == 1) {
|
if (rev.pending.nr == 1) {
|
||||||
|
@ -81,7 +81,7 @@ static int split_one(FILE *mbox, const char *name, int allow_bare)
|
|||||||
|
|
||||||
fd = open(name, O_WRONLY | O_CREAT | O_EXCL, 0666);
|
fd = open(name, O_WRONLY | O_CREAT | O_EXCL, 0666);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
die("cannot open output file %s", name);
|
die_errno("cannot open output file '%s'", name);
|
||||||
output = fdopen(fd, "w");
|
output = fdopen(fd, "w");
|
||||||
|
|
||||||
/* Copy it out, while searching for a line that begins with
|
/* Copy it out, while searching for a line that begins with
|
||||||
@ -91,7 +91,7 @@ static int split_one(FILE *mbox, const char *name, int allow_bare)
|
|||||||
int is_partial = len && buf[len-1] != '\n';
|
int is_partial = len && buf[len-1] != '\n';
|
||||||
|
|
||||||
if (fwrite(buf, 1, len, output) != len)
|
if (fwrite(buf, 1, len, output) != len)
|
||||||
die("cannot write output");
|
die_errno("cannot write output");
|
||||||
|
|
||||||
len = read_line_with_nul(buf, sizeof(buf), mbox);
|
len = read_line_with_nul(buf, sizeof(buf), mbox);
|
||||||
if (len == 0) {
|
if (len == 0) {
|
||||||
@ -99,7 +99,7 @@ static int split_one(FILE *mbox, const char *name, int allow_bare)
|
|||||||
status = 1;
|
status = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
die("cannot read mbox");
|
die_errno("cannot read mbox");
|
||||||
}
|
}
|
||||||
if (!is_partial && !is_bare && is_from_line(buf, len))
|
if (!is_partial && !is_bare && is_from_line(buf, len))
|
||||||
break; /* done with one message */
|
break; /* done with one message */
|
||||||
|
@ -268,7 +268,7 @@ static void squash_message(void)
|
|||||||
printf("Squash commit -- not updating HEAD\n");
|
printf("Squash commit -- not updating HEAD\n");
|
||||||
fd = open(git_path("SQUASH_MSG"), O_WRONLY | O_CREAT, 0666);
|
fd = open(git_path("SQUASH_MSG"), O_WRONLY | O_CREAT, 0666);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
die("Could not write to %s", git_path("SQUASH_MSG"));
|
die_errno("Could not write to '%s'", git_path("SQUASH_MSG"));
|
||||||
|
|
||||||
init_revisions(&rev, NULL);
|
init_revisions(&rev, NULL);
|
||||||
rev.ignore_merges = 1;
|
rev.ignore_merges = 1;
|
||||||
@ -764,7 +764,8 @@ static int suggest_conflicts(void)
|
|||||||
|
|
||||||
fp = fopen(git_path("MERGE_MSG"), "a");
|
fp = fopen(git_path("MERGE_MSG"), "a");
|
||||||
if (!fp)
|
if (!fp)
|
||||||
die("Could not open %s for writing", git_path("MERGE_MSG"));
|
die_errno("Could not open '%s' for writing",
|
||||||
|
git_path("MERGE_MSG"));
|
||||||
fprintf(fp, "\nConflicts:\n");
|
fprintf(fp, "\nConflicts:\n");
|
||||||
for (pos = 0; pos < active_nr; pos++) {
|
for (pos = 0; pos < active_nr; pos++) {
|
||||||
struct cache_entry *ce = active_cache[pos];
|
struct cache_entry *ce = active_cache[pos];
|
||||||
@ -1186,27 +1187,29 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
|||||||
sha1_to_hex(j->item->object.sha1));
|
sha1_to_hex(j->item->object.sha1));
|
||||||
fd = open(git_path("MERGE_HEAD"), O_WRONLY | O_CREAT, 0666);
|
fd = open(git_path("MERGE_HEAD"), O_WRONLY | O_CREAT, 0666);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
die("Could open %s for writing",
|
die_errno("Could not open '%s' for writing",
|
||||||
git_path("MERGE_HEAD"));
|
git_path("MERGE_HEAD"));
|
||||||
if (write_in_full(fd, buf.buf, buf.len) != buf.len)
|
if (write_in_full(fd, buf.buf, buf.len) != buf.len)
|
||||||
die("Could not write to %s", git_path("MERGE_HEAD"));
|
die_errno("Could not write to '%s'", git_path("MERGE_HEAD"));
|
||||||
close(fd);
|
close(fd);
|
||||||
strbuf_addch(&merge_msg, '\n');
|
strbuf_addch(&merge_msg, '\n');
|
||||||
fd = open(git_path("MERGE_MSG"), O_WRONLY | O_CREAT, 0666);
|
fd = open(git_path("MERGE_MSG"), O_WRONLY | O_CREAT, 0666);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
die("Could open %s for writing", git_path("MERGE_MSG"));
|
die_errno("Could not open '%s' for writing",
|
||||||
|
git_path("MERGE_MSG"));
|
||||||
if (write_in_full(fd, merge_msg.buf, merge_msg.len) !=
|
if (write_in_full(fd, merge_msg.buf, merge_msg.len) !=
|
||||||
merge_msg.len)
|
merge_msg.len)
|
||||||
die("Could not write to %s", git_path("MERGE_MSG"));
|
die_errno("Could not write to '%s'", git_path("MERGE_MSG"));
|
||||||
close(fd);
|
close(fd);
|
||||||
fd = open(git_path("MERGE_MODE"), O_WRONLY | O_CREAT | O_TRUNC, 0666);
|
fd = open(git_path("MERGE_MODE"), O_WRONLY | O_CREAT | O_TRUNC, 0666);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
die("Could open %s for writing", git_path("MERGE_MODE"));
|
die_errno("Could not open '%s' for writing",
|
||||||
|
git_path("MERGE_MODE"));
|
||||||
strbuf_reset(&buf);
|
strbuf_reset(&buf);
|
||||||
if (!allow_fast_forward)
|
if (!allow_fast_forward)
|
||||||
strbuf_addf(&buf, "no-ff");
|
strbuf_addf(&buf, "no-ff");
|
||||||
if (write_in_full(fd, buf.buf, buf.len) != buf.len)
|
if (write_in_full(fd, buf.buf, buf.len) != buf.len)
|
||||||
die("Could not write to %s", git_path("MERGE_MODE"));
|
die_errno("Could not write to '%s'", git_path("MERGE_MODE"));
|
||||||
close(fd);
|
close(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -592,7 +592,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!getcwd(cwd, PATH_MAX))
|
if (!getcwd(cwd, PATH_MAX))
|
||||||
die("unable to get current working directory");
|
die_errno("unable to get current working directory");
|
||||||
printf("%s/.git\n", cwd);
|
printf("%s/.git\n", cwd);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@ static void add_to_msg(const char *string)
|
|||||||
{
|
{
|
||||||
int len = strlen(string);
|
int len = strlen(string);
|
||||||
if (write_in_full(msg_fd, string, len) < 0)
|
if (write_in_full(msg_fd, string, len) < 0)
|
||||||
die ("Could not write to MERGE_MSG");
|
die_errno ("Could not write to MERGE_MSG");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void add_message_to_msg(const char *message)
|
static void add_message_to_msg(const char *message)
|
||||||
|
@ -78,7 +78,7 @@ int cmd_stripspace(int argc, const char **argv, const char *prefix)
|
|||||||
strip_comments = 1;
|
strip_comments = 1;
|
||||||
|
|
||||||
if (strbuf_read(&buf, 0, 1024) < 0)
|
if (strbuf_read(&buf, 0, 1024) < 0)
|
||||||
die("could not read the input");
|
die_errno("could not read the input");
|
||||||
|
|
||||||
stripspace(&buf, strip_comments);
|
stripspace(&buf, strip_comments);
|
||||||
|
|
||||||
|
@ -442,7 +442,7 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
|
|||||||
else {
|
else {
|
||||||
if (!strcmp(msgfile, "-")) {
|
if (!strcmp(msgfile, "-")) {
|
||||||
if (strbuf_read(&buf, 0, 1024) < 0)
|
if (strbuf_read(&buf, 0, 1024) < 0)
|
||||||
die("cannot read %s", msgfile);
|
die_errno("cannot read '%s'", msgfile);
|
||||||
} else {
|
} else {
|
||||||
if (strbuf_read_file(&buf, msgfile, 1024) < 0)
|
if (strbuf_read_file(&buf, msgfile, 1024) < 0)
|
||||||
die_errno("could not open or read '%s'",
|
die_errno("could not open or read '%s'",
|
||||||
|
@ -91,7 +91,7 @@ int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix)
|
|||||||
|
|
||||||
n = write_in_full(1, content + 11, 41);
|
n = write_in_full(1, content + 11, 41);
|
||||||
if (n < 41)
|
if (n < 41)
|
||||||
die("git get-tar-commit-id: write error");
|
die_errno("git get-tar-commit-id: write error");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -746,7 +746,7 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent,
|
|||||||
|
|
||||||
done = read_in_full(fd, result, len);
|
done = read_in_full(fd, result, len);
|
||||||
if (done < 0)
|
if (done < 0)
|
||||||
die("read error '%s'", elem->path);
|
die_errno("read error '%s'", elem->path);
|
||||||
else if (done < len)
|
else if (done < len)
|
||||||
die("early EOF '%s'", elem->path);
|
die("early EOF '%s'", elem->path);
|
||||||
|
|
||||||
|
6
diff.c
6
diff.c
@ -1982,7 +1982,7 @@ static void prep_temp_blob(const char *path, struct diff_tempfile *temp,
|
|||||||
size = buf.len;
|
size = buf.len;
|
||||||
}
|
}
|
||||||
if (write_in_full(fd, blob, size) != size)
|
if (write_in_full(fd, blob, size) != size)
|
||||||
die("unable to write temp-file");
|
die_errno("unable to write temp-file");
|
||||||
close(fd);
|
close(fd);
|
||||||
temp->name = temp->tmp_path;
|
temp->name = temp->tmp_path;
|
||||||
strcpy(temp->hex, sha1_to_hex(sha1));
|
strcpy(temp->hex, sha1_to_hex(sha1));
|
||||||
@ -2026,7 +2026,7 @@ static struct diff_tempfile *prepare_temp_file(const char *name,
|
|||||||
if (S_ISLNK(st.st_mode)) {
|
if (S_ISLNK(st.st_mode)) {
|
||||||
struct strbuf sb = STRBUF_INIT;
|
struct strbuf sb = STRBUF_INIT;
|
||||||
if (strbuf_readlink(&sb, name, st.st_size) < 0)
|
if (strbuf_readlink(&sb, name, st.st_size) < 0)
|
||||||
die("readlink(%s)", name);
|
die_errno("readlink(%s)", name);
|
||||||
prep_temp_blob(name, temp, sb.buf, sb.len,
|
prep_temp_blob(name, temp, sb.buf, sb.len,
|
||||||
(one->sha1_valid ?
|
(one->sha1_valid ?
|
||||||
one->sha1 : null_sha1),
|
one->sha1 : null_sha1),
|
||||||
@ -2219,7 +2219,7 @@ static void diff_fill_sha1_info(struct diff_filespec *one)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (lstat(one->path, &st) < 0)
|
if (lstat(one->path, &st) < 0)
|
||||||
die("stat %s", one->path);
|
die_errno("stat '%s'", one->path);
|
||||||
if (index_path(one->sha1, one->path, &st, 0))
|
if (index_path(one->sha1, one->path, &st, 0))
|
||||||
die("cannot hash %s", one->path);
|
die("cannot hash %s", one->path);
|
||||||
}
|
}
|
||||||
|
2
entry.c
2
entry.c
@ -37,7 +37,7 @@ static void create_directories(const char *path, int path_len,
|
|||||||
if (errno == EEXIST && state->force &&
|
if (errno == EEXIST && state->force &&
|
||||||
!unlink_or_warn(buf) && !mkdir(buf, 0777))
|
!unlink_or_warn(buf) && !mkdir(buf, 0777))
|
||||||
continue;
|
continue;
|
||||||
die("cannot create directory at %s", buf);
|
die_errno("cannot create directory at '%s'", buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(buf);
|
free(buf);
|
||||||
|
@ -905,10 +905,10 @@ static char *keep_pack(char *curr_index_name)
|
|||||||
|
|
||||||
keep_fd = odb_pack_keep(name, sizeof(name), pack_data->sha1);
|
keep_fd = odb_pack_keep(name, sizeof(name), pack_data->sha1);
|
||||||
if (keep_fd < 0)
|
if (keep_fd < 0)
|
||||||
die("cannot create keep file");
|
die_errno("cannot create keep file");
|
||||||
write_or_die(keep_fd, keep_msg, strlen(keep_msg));
|
write_or_die(keep_fd, keep_msg, strlen(keep_msg));
|
||||||
if (close(keep_fd))
|
if (close(keep_fd))
|
||||||
die("failed to write keep file");
|
die_errno("failed to write keep file");
|
||||||
|
|
||||||
snprintf(name, sizeof(name), "%s/pack/pack-%s.pack",
|
snprintf(name, sizeof(name), "%s/pack/pack-%s.pack",
|
||||||
get_object_directory(), sha1_to_hex(pack_data->sha1));
|
get_object_directory(), sha1_to_hex(pack_data->sha1));
|
||||||
|
@ -29,7 +29,7 @@ static void hash_object(const char *path, const char *type, int write_object,
|
|||||||
int fd;
|
int fd;
|
||||||
fd = open(path, O_RDONLY);
|
fd = open(path, O_RDONLY);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
die("Cannot open %s", path);
|
die_errno("Cannot open '%s'", path);
|
||||||
hash_fd(fd, type, write_object, vpath);
|
hash_fd(fd, type, write_object, vpath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ static void create_temp(mmfile_t *src, char *path)
|
|||||||
strcpy(path, ".merge_file_XXXXXX");
|
strcpy(path, ".merge_file_XXXXXX");
|
||||||
fd = xmkstemp(path);
|
fd = xmkstemp(path);
|
||||||
if (write_in_full(fd, src->ptr, src->size) != src->size)
|
if (write_in_full(fd, src->ptr, src->size) != src->size)
|
||||||
die("unable to write temp-file");
|
die_errno("unable to write temp-file");
|
||||||
close(fd);
|
close(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
mktag.c
2
mktag.c
@ -165,7 +165,7 @@ int main(int argc, char **argv)
|
|||||||
setup_git_directory();
|
setup_git_directory();
|
||||||
|
|
||||||
if (strbuf_read(&buf, 0, 4096) < 0) {
|
if (strbuf_read(&buf, 0, 4096) < 0) {
|
||||||
die("could not read from stdin");
|
die_errno("could not read from stdin");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Verify it for some basic sanity: it needs to start with
|
/* Verify it for some basic sanity: it needs to start with
|
||||||
|
@ -1265,7 +1265,7 @@ int read_index_from(struct index_state *istate, const char *path)
|
|||||||
mmap = xmmap(NULL, mmap_size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
|
mmap = xmmap(NULL, mmap_size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
|
||||||
close(fd);
|
close(fd);
|
||||||
if (mmap == MAP_FAILED)
|
if (mmap == MAP_FAILED)
|
||||||
die("unable to map index file");
|
die_errno("unable to map index file");
|
||||||
|
|
||||||
hdr = mmap;
|
hdr = mmap;
|
||||||
if (verify_hdr(hdr, mmap_size) < 0)
|
if (verify_hdr(hdr, mmap_size) < 0)
|
||||||
|
10
setup.c
10
setup.c
@ -327,7 +327,7 @@ const char *setup_git_directory_gently(int *nongit_ok)
|
|||||||
return NULL;
|
return NULL;
|
||||||
set_git_dir(make_absolute_path(gitdirenv));
|
set_git_dir(make_absolute_path(gitdirenv));
|
||||||
if (chdir(work_tree_env) < 0)
|
if (chdir(work_tree_env) < 0)
|
||||||
die ("Could not chdir to %s", work_tree_env);
|
die_errno ("Could not chdir to '%s'", work_tree_env);
|
||||||
strcat(buffer, "/");
|
strcat(buffer, "/");
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -339,7 +339,7 @@ const char *setup_git_directory_gently(int *nongit_ok)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!getcwd(cwd, sizeof(cwd)-1))
|
if (!getcwd(cwd, sizeof(cwd)-1))
|
||||||
die("Unable to read current working directory");
|
die_errno("Unable to read current working directory");
|
||||||
|
|
||||||
ceil_offset = longest_ancestor_length(cwd, env_ceiling_dirs);
|
ceil_offset = longest_ancestor_length(cwd, env_ceiling_dirs);
|
||||||
if (ceil_offset < 0 && has_dos_drive_prefix(cwd))
|
if (ceil_offset < 0 && has_dos_drive_prefix(cwd))
|
||||||
@ -382,7 +382,7 @@ const char *setup_git_directory_gently(int *nongit_ok)
|
|||||||
if (offset <= ceil_offset) {
|
if (offset <= ceil_offset) {
|
||||||
if (nongit_ok) {
|
if (nongit_ok) {
|
||||||
if (chdir(cwd))
|
if (chdir(cwd))
|
||||||
die("Cannot come back to cwd");
|
die_errno("Cannot come back to cwd");
|
||||||
*nongit_ok = 1;
|
*nongit_ok = 1;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -493,10 +493,10 @@ const char *setup_git_directory(void)
|
|||||||
static char buffer[PATH_MAX + 1];
|
static char buffer[PATH_MAX + 1];
|
||||||
char *rel;
|
char *rel;
|
||||||
if (retval && chdir(retval))
|
if (retval && chdir(retval))
|
||||||
die ("Could not jump back into original cwd");
|
die_errno ("Could not jump back into original cwd");
|
||||||
rel = get_relative_cwd(buffer, PATH_MAX, get_git_work_tree());
|
rel = get_relative_cwd(buffer, PATH_MAX, get_git_work_tree());
|
||||||
if (rel && *rel && chdir(get_git_work_tree()))
|
if (rel && *rel && chdir(get_git_work_tree()))
|
||||||
die ("Could not jump to working directory");
|
die_errno ("Could not jump to working directory");
|
||||||
return rel && *rel ? strcat(rel, "/") : NULL;
|
return rel && *rel ? strcat(rel, "/") : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ static struct ref *get_refs_via_rsync(struct transport *transport, int for_push)
|
|||||||
|
|
||||||
strbuf_addstr(&temp_dir, git_path("rsync-refs-XXXXXX"));
|
strbuf_addstr(&temp_dir, git_path("rsync-refs-XXXXXX"));
|
||||||
if (!mkdtemp(temp_dir.buf))
|
if (!mkdtemp(temp_dir.buf))
|
||||||
die ("Could not make temporary directory");
|
die_errno ("Could not make temporary directory");
|
||||||
temp_dir_len = temp_dir.len;
|
temp_dir_len = temp_dir.len;
|
||||||
|
|
||||||
strbuf_addstr(&buf, rsync_url(transport->url));
|
strbuf_addstr(&buf, rsync_url(transport->url));
|
||||||
@ -321,7 +321,7 @@ static int rsync_transport_push(struct transport *transport,
|
|||||||
|
|
||||||
strbuf_addstr(&temp_dir, git_path("rsync-refs-XXXXXX"));
|
strbuf_addstr(&temp_dir, git_path("rsync-refs-XXXXXX"));
|
||||||
if (!mkdtemp(temp_dir.buf))
|
if (!mkdtemp(temp_dir.buf))
|
||||||
die ("Could not make temporary directory");
|
die_errno ("Could not make temporary directory");
|
||||||
strbuf_addch(&temp_dir, '/');
|
strbuf_addch(&temp_dir, '/');
|
||||||
|
|
||||||
if (flags & TRANSPORT_PUSH_ALL) {
|
if (flags & TRANSPORT_PUSH_ALL) {
|
||||||
|
@ -17,7 +17,7 @@ static char *create_temp_file(unsigned char *sha1)
|
|||||||
strcpy(path, ".merge_file_XXXXXX");
|
strcpy(path, ".merge_file_XXXXXX");
|
||||||
fd = xmkstemp(path);
|
fd = xmkstemp(path);
|
||||||
if (write_in_full(fd, buf, size) != size)
|
if (write_in_full(fd, buf, size) != size)
|
||||||
die("unable to write temp-file");
|
die_errno("unable to write temp-file");
|
||||||
close(fd);
|
close(fd);
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user