summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 14c8a68)
raw | patch | inline | side by side (parent: 14c8a68)
author | Junio C Hamano <junkio@cox.net> | |
Sun, 1 Oct 2006 18:41:00 +0000 (11:41 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Sun, 1 Oct 2006 18:41:00 +0000 (11:41 -0700) |
The function repack_without_ref() passes a lock-file structure
on the stack to hold_lock_file_for_update(), which in turn
registers it to be cleaned up via atexit(). This is a big
no-no.
This is the same bug James Bottomley fixed with commit
31f584c242e7af28018ff920b6c8d1952beadbd4.
Signed-off-by: Junio C Hamano <junkio@cox.net>
on the stack to hold_lock_file_for_update(), which in turn
registers it to be cleaned up via atexit(). This is a big
no-no.
This is the same bug James Bottomley fixed with commit
31f584c242e7af28018ff920b6c8d1952beadbd4.
Signed-off-by: Junio C Hamano <junkio@cox.net>
refs.c | patch | blob | history |
index 221eb3896ed10ff75b86ae955454636dd70f71c6..aa4c4e0b94585835298ad1785eee77462760e2d6 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -621,12 +621,13 @@ struct ref_lock *lock_any_ref_for_update(const char *ref, const unsigned char *o
return lock_ref_sha1_basic(ref, old_sha1, NULL);
}
+static struct lock_file packlock;
+
static int repack_without_ref(const char *refname)
{
struct ref_list *list, *packed_ref_list;
int fd;
int found = 0;
- struct lock_file packlock;
packed_ref_list = get_packed_refs();
for (list = packed_ref_list; list; list = list->next) {