Re: [PATCH] branch: don't assume the merge filter ref exists
- From
Jeff King <peff@peff.net>
- Date
- Feb 27, 2012, 19:30 UTC
- Message-ID
- <20120227193044.GD1600@sigill.intra.peff.net>
- In-Reply-To
- <1330355513-22351-1-git-send-email-cmn@elego.de>
On Mon, Feb 27, 2012 at 04:11:53PM +0100, Carlos Martín Nieto wrote:
Show 18 quoted lines
> print_ref_list looks up the merge_filter_ref and assumes that a valid > pointer is returned. When the object doesn't exist, it tries to > dereference a NULL pointer. This can be the case when git branch > --merged is given an argument that isn't a valid commit name. > > Check whether the lookup returns a NULL pointer and die with an error > if it does. Add a test, while we're at it. > > Signed-off-by: Carlos Martín Nieto <cmn@elego.de> > --- > > It certainly looks like --merged was only ever supposed to be used > with branch names, as it assumed that get_sha1() would catch the > errors. > > I'm not sure if "bad object" or "invalid object" fits better. "bad > object" might have a stronger implication that it exists but is > corrupt.
You would also get NULL if the object exists but is not a commit. Maybe:
die("object '%s' does not point to a commit", ...)would be better? It covers the wrong-type case, and is still technically true when the object does not exist.
-Peff