X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=server-info.c;h=f9be5a7f60c1cc5208e7c91367ecb28014106f18;hb=refs%2Ftags%2Fv1.5.0.7;hp=7df628f2b226f6984d168af0382680b9dae0751a;hpb=2dcb927f37976ef5185cef5452516b170b14cd6c;p=git.git diff --git a/server-info.c b/server-info.c index 7df628f2b..f9be5a7f6 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) +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) { @@ -23,7 +25,7 @@ static int add_info_ref(const char *path, const unsigned char *sha1) static int update_info_refs(int force) { - char *path0 = strdup(git_path("info/refs")); + char *path0 = xstrdup(git_path("info/refs")); int len = strlen(path0); char *path1 = xmalloc(len + 2); @@ -34,7 +36,7 @@ static int update_info_refs(int force) info_ref_fp = fopen(path1, "w"); if (!info_ref_fp) return error("unable to update %s", path0); - for_each_ref(add_info_ref); + for_each_ref(add_info_ref, NULL); fclose(info_ref_fp); rename(path1, path0); free(path0);