]> git.ipfire.org Git - thirdparty/git.git/blobdiff - pack-write.c
Merge branch 'cm/rebase-i-updates'
[thirdparty/git.git] / pack-write.c
index 680c36755dd2f112fefb20c9b86f59f36e4c59c5..2ca85a9d1667b88eaa438a29d219a5aa4d842476 100644 (file)
@@ -380,7 +380,7 @@ void fixup_pack_header_footer(int pack_fd,
        fsync_or_die(pack_fd, pack_name);
 }
 
-char *index_pack_lockfile(int ip_out)
+char *index_pack_lockfile(int ip_out, int *is_well_formed)
 {
        char packname[GIT_MAX_HEXSZ + 6];
        const int len = the_hash_algo->hexsz + 6;
@@ -394,11 +394,17 @@ char *index_pack_lockfile(int ip_out)
         */
        if (read_in_full(ip_out, packname, len) == len && packname[len-1] == '\n') {
                const char *name;
+
+               if (is_well_formed)
+                       *is_well_formed = 1;
                packname[len-1] = 0;
                if (skip_prefix(packname, "keep\t", &name))
                        return xstrfmt("%s/pack/pack-%s.keep",
                                       get_object_directory(), name);
+               return NULL;
        }
+       if (is_well_formed)
+               *is_well_formed = 0;
        return NULL;
 }