On Thu, Oct 16, 2014 at 05:39:18PM -0400, Jeff King wrote:

> @@ -301,6 +297,14 @@ static struct commit *handle_commit(struct rev_info 
> *revs,
>                       die("bad object %s", sha1_to_hex(tag->tagged->sha1));
>               }
>               object->flags |= flags;
> +             /*
> +              * We'll handle the tagged object by looping or dropping
> +              * through to the non-tag handlers below. Do not
> +              * propagate data from the tag's pending entry.
> +              */
> +             name = NULL;
> +             path = NULL;
> +             mode = 0;

Hmm. On second thought (and after seeing a warning from Coverity), this
should be:

diff --git a/revision.c b/revision.c
index 8030fc8..ebe3e93 100644
--- a/revision.c
+++ b/revision.c
@@ -302,7 +302,7 @@ static struct commit *handle_commit(struct rev_info *revs,
                 * through to the non-tag handlers below. Do not
                 * propagate data from the tag's pending entry.
                 */
-               name = NULL;
+               name = "";
                path = NULL;
                mode = 0;
        }

The rest of the function assumes that name is not NULL (which I'm not
sure is entirely safe, as add_pending_object can take a NULL; presumably
every "add" uses the empty string instead of NULL. But either way,
setting it to NULL here is definite wrong).

The "path" field is explicitly OK to be NULL.

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to