X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=cache-tree.c;h=a880c97b38e7d36f2a45a1743e9565cc1e58280d;hb=6dfbe5163e26e3e1126c9b08c3cb38195e92a82c;hp=a10902fd3050356529b26af7257de9eb2ab1623d;hpb=2956dd3bd7bd512aa8fce7e55d5eec1e56df99ab;p=git.git diff --git a/cache-tree.c b/cache-tree.c index a10902fd..a880c97b 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -110,6 +110,10 @@ void cache_tree_invalidate_path(struct cache_tree *it, const char *path) int namelen; struct cache_tree_sub *down; +#if DEBUG + fprintf(stderr, "cache-tree invalidate <%s>\n", path); +#endif + if (!it) return; slash = strchr(path, '/'); @@ -335,13 +339,13 @@ static int update_one(struct cache_tree *it, offset += 20; #if DEBUG - fprintf(stderr, "cache-tree %o %.*s\n", + fprintf(stderr, "cache-tree update-one %o %.*s\n", mode, entlen, path + baselen); #endif } if (dryrun) { - char hdr[200]; + unsigned char hdr[200]; int hdrlen; write_sha1_file_prepare(buffer, offset, tree_type, it->sha1, hdr, &hdrlen); @@ -351,7 +355,7 @@ static int update_one(struct cache_tree *it, free(buffer); it->entry_count = i; #if DEBUG - fprintf(stderr, "cache-tree (%d ent, %d subtree) %s\n", + fprintf(stderr, "cache-tree update-one (%d ent, %d subtree) %s\n", it->entry_count, it->subtree_nr, sha1_to_hex(it->sha1)); #endif @@ -440,6 +444,8 @@ static struct cache_tree *read_one(const char **buffer, unsigned long *size_p) { const char *buf = *buffer; unsigned long size = *size_p; + const char *cp; + char *ep; struct cache_tree *it; int i, subtree_nr; @@ -453,7 +459,14 @@ static struct cache_tree *read_one(const char **buffer, unsigned long *size_p) goto free_return; buf++; size--; it = cache_tree(); - if (sscanf(buf, "%d %d\n", &it->entry_count, &subtree_nr) != 2) + + cp = buf; + it->entry_count = strtol(cp, &ep, 10); + if (cp == ep) + goto free_return; + cp = ep; + subtree_nr = strtol(cp, &ep, 10); + if (cp == ep) goto free_return; while (size && *buf && *buf != '\n') { size--;