Fix .git/ discovery at the root of UNC shares
[gitweb.git] / commit-graph.c
index 821900675b27f20f7a1480328f46c53fed97957c..f2888c203b677a8a0091f7f63129efe282899172 100644 (file)
@@ -434,6 +434,7 @@ static struct commit_graph *load_commit_graph_chain(struct repository *r, const
 
        free(oids);
        fclose(fp);
+       strbuf_release(&line);
 
        return graph_chain;
 }
@@ -1188,7 +1189,7 @@ static int fill_oids_from_packs(struct write_commit_graph_context *ctx,
        }
 
        stop_progress(&ctx->progress);
-       strbuf_reset(&progress_title);
+       strbuf_release(&progress_title);
        strbuf_release(&packname);
 
        return 0;
@@ -1639,7 +1640,7 @@ static void sort_and_scan_merged_commits(struct write_commit_graph_context *ctx)
                                num_parents++;
 
                        if (num_parents > 2)
-                               ctx->num_extra_edges += num_parents - 2;
+                               ctx->num_extra_edges += num_parents - 1;
                }
        }
 
@@ -1716,10 +1717,8 @@ static void expire_commit_graphs(struct write_commit_graph_context *ctx)
        strbuf_addstr(&path, "/info/commit-graphs");
        dir = opendir(path.buf);
 
-       if (!dir) {
-               strbuf_release(&path);
-               return;
-       }
+       if (!dir)
+               goto out;
 
        strbuf_addch(&path, '/');
        dirnamelen = path.len;
@@ -1748,6 +1747,9 @@ static void expire_commit_graphs(struct write_commit_graph_context *ctx)
                if (!found)
                        unlink(path.buf);
        }
+
+out:
+       strbuf_release(&path);
 }
 
 int write_commit_graph(const char *obj_dir,