diff options
-rw-r--r-- | apply.c | 25 | ||||
-rw-r--r-- | combine-diff.c | 8 | ||||
-rw-r--r-- | daemon.c | 2 | ||||
-rwxr-xr-x | git-merge.sh | 2 | ||||
-rw-r--r-- | http-fetch.c | 21 |
5 files changed, 20 insertions, 38 deletions
@@ -1564,24 +1564,6 @@ static void add_index_file(const char *path, unsigned mode, void *buf, unsigned die("unable to add cache entry for %s", path); } -static void create_subdirectories(const char *path) -{ - int len = strlen(path); - char *buf = xmalloc(len + 1); - const char *slash = path; - - while ((slash = strchr(slash+1, '/')) != NULL) { - len = slash - path; - memcpy(buf, path, len); - buf[len] = 0; - if (mkdir(buf, 0777) < 0) { - if (errno != EEXIST) - break; - } - } - free(buf); -} - static int try_create_file(const char *path, unsigned int mode, const char *buf, unsigned long size) { int fd; @@ -1610,13 +1592,14 @@ static int try_create_file(const char *path, unsigned int mode, const char *buf, * which is true 99% of the time anyway. If they don't, * we create them and try again. */ -static void create_one_file(const char *path, unsigned mode, const char *buf, unsigned long size) +static void create_one_file(char *path, unsigned mode, const char *buf, unsigned long size) { if (!try_create_file(path, mode, buf, size)) return; if (errno == ENOENT) { - create_subdirectories(path); + if (safe_create_leading_directories(path)) + return; if (!try_create_file(path, mode, buf, size)) return; } @@ -1643,7 +1626,7 @@ static void create_one_file(const char *path, unsigned mode, const char *buf, un static void create_file(struct patch *patch) { - const char *path = patch->new_name; + char *path = patch->new_name; unsigned mode = patch->new_mode; unsigned long size = patch->resultsize; char *buf = patch->result; diff --git a/combine-diff.c b/combine-diff.c index 216a77e088..210ffcbce3 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -528,7 +528,7 @@ static void show_parent_lno(struct sline *sline, unsigned long l0, unsigned long { l0 = sline[l0].p_lno[n]; l1 = sline[l1].p_lno[n]; - printf("-%lu,%lu ", l0, l1-l0); + printf(" -%lu,%lu", l0, l1-l0); } static void dump_sline(struct sline *sline, unsigned long cnt, int num_parent) @@ -548,9 +548,9 @@ static void dump_sline(struct sline *sline, unsigned long cnt, int num_parent) if (!(sline[hunk_end].flag & mark)) break; for (i = 0; i <= num_parent; i++) putchar(combine_marker); - printf(" +%lu,%lu ", lno+1, hunk_end-lno); for (i = 0; i < num_parent; i++) show_parent_lno(sline, lno, hunk_end, cnt, i); + printf(" +%lu,%lu ", lno+1, hunk_end-lno); for (i = 0; i <= num_parent; i++) putchar(combine_marker); putchar('\n'); while (lno < hunk_end) { @@ -714,11 +714,11 @@ int show_combined_diff(struct combine_diff_path *elem, int num_parent, printf("index "); for (i = 0; i < num_parent; i++) { printf("%s%s", - i ? ".." : "", + i ? "," : "", find_unique_abbrev(elem->parent_sha1[i], DEFAULT_ABBREV)); } - printf("->%s\n", + printf("..%s\n", find_unique_abbrev(elem->sha1, DEFAULT_ABBREV)); dump_sline(sline, cnt, num_parent); } @@ -147,7 +147,7 @@ static char *path_ok(char *dir) static char rpath[PATH_MAX]; if (*dir != '/') { /* Forbid possible base-path evasion using ~paths. */ - logerror("'%s': Non-absolute path denied (base-path active)"); + logerror("'%s': Non-absolute path denied (base-path active)", dir); return NULL; } snprintf(rpath, PATH_MAX, "%s%s", base_path, dir); diff --git a/git-merge.sh b/git-merge.sh index 92e5a65cae..8c0a92c147 100755 --- a/git-merge.sh +++ b/git-merge.sh @@ -293,7 +293,7 @@ for remote do echo $remote done >"$GIT_DIR/MERGE_HEAD" -echo $merge_msg >"$GIT_DIR/MERGE_MSG" +echo "$merge_msg" >"$GIT_DIR/MERGE_MSG" if test "$merge_was_ok" = t then diff --git a/http-fetch.c b/http-fetch.c index 97ce13c44c..72edf28b00 100644 --- a/http-fetch.c +++ b/http-fetch.c @@ -220,7 +220,6 @@ static void start_object_request(struct object_request *obj_req) free(obj_req->url); return; } - } static void finish_object_request(struct object_request *obj_req) @@ -326,7 +325,7 @@ void fill_active_slots(void) slot->curl = NULL; } slot = slot->next; - } + } } #endif @@ -382,10 +381,10 @@ static int fetch_index(struct alt_base *repo, unsigned char *sha1) if (get_verbosely) fprintf(stderr, "Getting index for pack %s\n", hex); - + url = xmalloc(strlen(repo->base) + 64); sprintf(url, "%s/objects/pack/pack-%s.idx", repo->base, hex); - + filename = sha1_pack_index_name(sha1); snprintf(tmpfile, sizeof(tmpfile), "%s.temp", filename); indexfile = fopen(tmpfile, "a"); @@ -504,7 +503,7 @@ static void process_alternates_response(void *callback_data) } else if (!memcmp(data + i, "../", 3)) { i += 3; serverlen = strlen(base); - while (i + 2 < posn && + while (i + 2 < posn && !memcmp(data + i, "../", 3)) { do { serverlen--; @@ -513,7 +512,7 @@ static void process_alternates_response(void *callback_data) i += 3; } // If the server got removed, give up. - okay = strchr(base, ':') - base + 3 < + okay = strchr(base, ':') - base + 3 < serverlen; } else if (alt_req->http_specific) { char *colon = strchr(data + i, ':'); @@ -531,7 +530,7 @@ static void process_alternates_response(void *callback_data) posn - i - 7); target[serverlen + posn - i - 7] = '\0'; if (get_verbosely) - fprintf(stderr, + fprintf(stderr, "Also look at %s\n", target); newalt = xmalloc(sizeof(*newalt)); newalt->next = NULL; @@ -580,7 +579,7 @@ static void fetch_alternates(char *base) if (get_verbosely) fprintf(stderr, "Getting alternates list for %s\n", base); - + url = xmalloc(strlen(base) + 31); sprintf(url, "%s/objects/info/http-alternates", base); @@ -630,7 +629,7 @@ static int fetch_indices(struct alt_base *repo) if (get_verbosely) fprintf(stderr, "Getting pack list for %s\n", repo->base); - + url = xmalloc(strlen(repo->base) + 21); sprintf(url, "%s/objects/info/packs", repo->base); @@ -844,7 +843,7 @@ int fetch(unsigned char *sha1) fetch_alternates(alt->base); altbase = altbase->next; } - return error("Unable to find %s under %s\n", sha1_to_hex(sha1), + return error("Unable to find %s under %s\n", sha1_to_hex(sha1), alt->base); } @@ -905,7 +904,7 @@ int fetch_ref(char *ref, unsigned char *sha1) buffer.posn = 0; buffer.buffer = hex; hex[41] = '\0'; - + url = quote_ref_url(base, ref); slot = get_active_slot(); slot->results = &results; |