Re: [PATCH] delete_ref(): fix uninitialized value, found by valgrind
From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:46:05
Hi, On Tue, 3 Feb 2009, Junio C Hamano wrote:
Johannes Schindelin [off-list ref] writes:quoted
The variable 'err' was not necessarily initialized before it was used. Signed-off-by: Johannes Schindelin <redacted> --- refs.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)diff --git a/refs.c b/refs.c index b13e01b..ded7ec4 100644 --- a/refs.c +++ b/refs.c@@ -929,7 +929,7 @@ static int log_ref_write(const char *ref_name, const unsigned char *old_sha1, int delete_ref(const char *refname, const unsigned char *sha1, int delopt) { struct ref_lock *lock; - int err, i = 0, ret = 0, flag = 0; + int err = 0, i = 0, ret = 0, flag = 0; struct stat loginfo; int log = !lstat(git_path("logs/%s", refname), &loginfo);Sorry, I do not see it. There are two uses of "err" in this function, both of which looks like: if (err && errno != ENOENT) but both of these places have err = unlink(...) immediately before it.
I should know better by now than to base my work on the tip of my Git tree. Sure enough I have an attempt at resolving the "deleting a branch deletes its reflog, too" issue, which has that bug. Sorry for the noise, Dscho