1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-11 14:46:08 +02:00

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:
René Scharfe 2020-10-11 18:03:28 +02:00 committed by Junio C Hamano
parent d4a392452e
commit e30b1525fb

View File

@ -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);