From: Jeff King Date: Mon, 27 Feb 2012 19:30:44 GMT Subject: Re: [PATCH] branch: don't assume the merge filter ref exists 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: > 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 > --- > > 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