X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=update-cache.c;h=a6f9d6c178be67db9c681f536c650791479e6ef4;hb=b11645be0139f907488b17ca4267e593ee58dd30;hp=2f5d620fd8b849d761a2bf337ecdd86f251271ac;hpb=f1a7eb36b017c62d9a007b6b8660bdeec3f94f97;p=git.git diff --git a/update-cache.c b/update-cache.c index 2f5d620f..a6f9d6c1 100644 --- a/update-cache.c +++ b/update-cache.c @@ -73,7 +73,7 @@ static int add_file_to_cache(char *path) if (allow_remove) return remove_file_from_cache(path); } - return -1; + return error("open(\"%s\"): %s", path, strerror(errno)); } namelen = strlen(path); size = cache_entry_size(namelen); @@ -131,7 +131,7 @@ static int compare_data(struct cache_entry *ce, unsigned long expected_size) if (fd >= 0) { void *buffer; unsigned long size; - char type[10]; + char type[20]; buffer = read_sha1_file(ce->sha1, type, &size); if (buffer) { @@ -191,7 +191,7 @@ static struct cache_entry *refresh_entry(struct cache_entry *ce) if (lstat(ce->name, &st) < 0) return ERR_PTR(-errno); - changed = cache_match_stat(ce, &st); + changed = ce_match_stat(ce, &st); if (!changed) return ce; @@ -249,6 +249,9 @@ static int refresh_cache(void) continue; } active_cache_changed = 1; + /* You can NOT just free active_cache[i] here, since it + * might not be necessarily malloc()ed but can also come + * from mmap(). */ active_cache[i] = new; } return has_errors;