Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help