{"thread":{"id":"17536","subject":"[PATCH] delete_ref(): fix uninitialized value, found by valgrind","startedAt":"2009-02-03T18:12:40Z","lastAt":"2009-02-04T09:57:32Z","messageCount":3,"participants":["Johannes Schindelin","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"103007","messageId":"alpine.DEB.1.00.0902031912290.9822@pacific.mpi-cbg.de","threadId":"17536","inReplyTo":"cover.1233684745u.git.johannes.schindelin@gmx.de","subject":"[PATCH] delete_ref(): fix uninitialized value, found by valgrind","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2009-02-03T18:12:40Z","receivedAt":"2009-02-03T18:12:40Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"The variable 'err' was not necessarily initialized before it was used.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\n refs.c |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/refs.c b/refs.c\nindex b13e01b..ded7ec4 100644\n--- a/refs.c\n+++ b/refs.c\n@@ -929,7 +929,7 @@ static int log_ref_write(const char *ref_name, const unsigned char *old_sha1,\n int delete_ref(const char *refname, const unsigned char *sha1, int delopt)\n {\n \tstruct ref_lock *lock;\n-\tint err, i = 0, ret = 0, flag = 0;\n+\tint err = 0, i = 0, ret = 0, flag = 0;\n \tstruct stat loginfo;\n \tint log = !lstat(git_path(\"logs/%s\", refname), &loginfo);\n \n-- \n1.6.1.2.574.g140d5\n"},{"id":"103070","messageId":"7v7i467ndd.fsf@gitster.siamese.dyndns.org","threadId":"17536","inReplyTo":"alpine.DEB.1.00.0902031912290.9822@pacific.mpi-cbg.de","subject":"Re: [PATCH] delete_ref(): fix uninitialized value, found by valgrind","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-02-04T06:00:14Z","receivedAt":"2009-02-04T06:00:14Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <johannes.schindelin@gmx.de> writes:\n\n> The variable 'err' was not necessarily initialized before it was used.\n>\n> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n> ---\n>  refs.c |    2 +-\n>  1 files changed, 1 insertions(+), 1 deletions(-)\n>\n> diff --git a/refs.c b/refs.c\n> index b13e01b..ded7ec4 100644\n> --- a/refs.c\n> +++ b/refs.c\n> @@ -929,7 +929,7 @@ static int log_ref_write(const char *ref_name, const unsigned char *old_sha1,\n>  int delete_ref(const char *refname, const unsigned char *sha1, int delopt)\n>  {\n>  \tstruct ref_lock *lock;\n> -\tint err, i = 0, ret = 0, flag = 0;\n> +\tint err = 0, i = 0, ret = 0, flag = 0;\n>  \tstruct stat loginfo;\n>  \tint log = !lstat(git_path(\"logs/%s\", refname), &loginfo);\n\nSorry, I do not see it.\n\nThere are two uses of \"err\" in this function, both of which looks like:\n\n\tif (err && errno != ENOENT)\n\nbut both of these places have\n\n\terr = unlink(...)\n\nimmediately before it.\n"},{"id":"103101","messageId":"alpine.DEB.1.00.0902041056200.22763@intel-tinevez-2-302","threadId":"17536","inReplyTo":"7v7i467ndd.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] delete_ref(): fix uninitialized value, found by valgrind","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2009-02-04T09:57:32Z","receivedAt":"2009-02-04T09:57:32Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 3 Feb 2009, Junio C Hamano wrote:\n\n> Johannes Schindelin <johannes.schindelin@gmx.de> writes:\n> \n> > The variable 'err' was not necessarily initialized before it was used.\n> >\n> > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n> > ---\n> >  refs.c |    2 +-\n> >  1 files changed, 1 insertions(+), 1 deletions(-)\n> >\n> > diff --git a/refs.c b/refs.c\n> > index b13e01b..ded7ec4 100644\n> > --- a/refs.c\n> > +++ b/refs.c\n> > @@ -929,7 +929,7 @@ static int log_ref_write(const char *ref_name, const unsigned char *old_sha1,\n> >  int delete_ref(const char *refname, const unsigned char *sha1, int delopt)\n> >  {\n> >  \tstruct ref_lock *lock;\n> > -\tint err, i = 0, ret = 0, flag = 0;\n> > +\tint err = 0, i = 0, ret = 0, flag = 0;\n> >  \tstruct stat loginfo;\n> >  \tint log = !lstat(git_path(\"logs/%s\", refname), &loginfo);\n> \n> Sorry, I do not see it.\n> \n> There are two uses of \"err\" in this function, both of which looks like:\n> \n> \tif (err && errno != ENOENT)\n> \n> but both of these places have\n> \n> \terr = unlink(...)\n> \n> immediately before it.\n\nI should know better by now than to base my work on the tip of my Git \ntree.  Sure enough I have an attempt at resolving the \"deleting a branch \ndeletes its reflog, too\" issue, which has that bug.\n\nSorry for the noise,\nDscho\n"}]}