]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git cherry-pick: do not dereference a potential NULL pointer
authorNeil Horman <nhorman@tuxdriver.com>
Thu, 3 May 2012 12:10:22 +0000 (08:10 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 3 May 2012 22:41:35 +0000 (15:41 -0700)
In the case the pointer could be NULL, the function that gave the caller
the NULL pointer would already have issued an error message, so simply
returning early with an error status without issuing a new message is
sufficient.  The same for parse_commit() that will show necessary error
message when the argument is not NULL, and will return error silently
when the argument is NULL.

Noticed-by: Michael Mueller
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c

index 4e3af82442b949a387bb630c77c2f3f4add0bb03..72cb4ff82ca0b98f4074e1af3fb491df691a7268 100644 (file)
@@ -261,9 +261,17 @@ static int is_index_unchanged(void)
                return error(_("Could not resolve HEAD commit\n"));
 
        head_commit = lookup_commit(head_sha1);
-       if (!head_commit || parse_commit(head_commit))
-               return error(_("could not parse commit %s\n"),
-                            sha1_to_hex(head_commit->object.sha1));
+
+       /*
+        * If head_commit is NULL, check_commit, called from
+        * lookup_commit, would have indicated that head_commit is not
+        * a commit object already.  parse_commit() will return failure
+        * without further complaints in such a case.  Otherwise, if
+        * the commit is invalid, parse_commit() will complain.  So
+        * there is nothing for us to say here.  Just return failure.
+        */
+       if (parse_commit(head_commit))
+               return -1;
 
        if (!active_cache_tree)
                active_cache_tree = cache_tree();