From: Junio C Hamano Date: Wed, 04 Feb 2009 06:00:14 GMT Subject: Re: [PATCH] delete_ref(): fix uninitialized value, found by valgrind Message-ID: <7v7i467ndd.fsf@gitster.siamese.dyndns.org> In-Reply-To: Johannes Schindelin writes: > The variable 'err' was not necessarily initialized before it was used. > > Signed-off-by: Johannes Schindelin > --- > 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.