grep: handle deref_tag() returning NULL
deref_tag() can return NULL. Exit gracefully in that case instead of blindly dereferencing the return value. .name shouldn't ever be NULL, but grep_object() handles that case explicitly, so let's be defensive here as well and show the broken object's ID if it happens to lack a name after all. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d4a392452e
commit
e30b1525fb
@ -670,6 +670,17 @@ static int grep_objects(struct grep_opt *opt, const struct pathspec *pathspec,
|
||||
NULL, 0);
|
||||
obj_read_unlock();
|
||||
|
||||
if (!real_obj) {
|
||||
char hex[GIT_MAX_HEXSZ + 1];
|
||||
const char *name = list->objects[i].name;
|
||||
|
||||
if (!name) {
|
||||
oid_to_hex_r(hex, &list->objects[i].item->oid);
|
||||
name = hex;
|
||||
}
|
||||
die(_("invalid object '%s' given."), name);
|
||||
}
|
||||
|
||||
/* load the gitmodules file for this rev */
|
||||
if (recurse_submodules) {
|
||||
submodule_free(opt->repo);
|
||||
|
Loading…
Reference in New Issue
Block a user