X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=server-info.c;h=0d1312ca56d52daa3fc692984d4d3abaf3425791;hb=f8db7884286232274c8e7c7d82a35a2478b097d3;hp=7667b412576644ee5f428658df6db32efc37f0c3;hpb=cb5d709ff8a4bae19d57a470ba2b137c25938a44;p=git.git diff --git a/server-info.c b/server-info.c index 7667b4125..0d1312ca5 100644 --- a/server-info.c +++ b/server-info.c @@ -7,9 +7,11 @@ /* refs */ static FILE *info_ref_fp; -static int add_info_ref(const char *path, const unsigned char *sha1, void *cb_data) +static int add_info_ref(const char *path, const unsigned char *sha1, int flag, void *cb_data) { struct object *o = parse_object(sha1); + if (!o) + return -1; fprintf(info_ref_fp, "%s %s\n", sha1_to_hex(sha1), path); if (o->type == OBJ_TAG) { @@ -36,6 +38,7 @@ static int update_info_refs(int force) return error("unable to update %s", path0); for_each_ref(add_info_ref, NULL); fclose(info_ref_fp); + adjust_shared_perm(path1); rename(path1, path0); free(path0); free(path1); @@ -225,6 +228,7 @@ static int update_info_packs(int force) return error("cannot open %s", name); write_pack_info_file(fp); fclose(fp); + adjust_shared_perm(name); rename(name, infofile); return 0; }