Code

name-rev: Fix segmentation fault when using --all
authorBjörn Steinbrink <B.Steinbrink@gmx.de>
Thu, 5 Jun 2008 23:31:55 +0000 (01:31 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Jun 2008 04:01:45 +0000 (21:01 -0700)
In commit da2478db "describe --always: fall back to showing an
abbreviated object name" we lost the check that skips empty entries in
the object hash table when iterating over it in cmd_name_rev. That may
cause a NULL pointer being handed to show_name(), leading to a
segmentation fault. So add that check back again.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-name-rev.c

index 384da4db13d9ff82b9bd45e6ab26b5dbf925dc22..521f061c9e5dfa2aecc22758353bd7bd67e34121 100644 (file)
@@ -280,9 +280,13 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix)
                int i, max;
 
                max = get_max_object_index();
-               for (i = 0; i < max; i++)
-                       show_name(get_indexed_object(i), NULL,
+               for (i = 0; i < max; i++) {
+                       struct object *obj = get_indexed_object(i);
+                       if (!obj)
+                               continue;
+                       show_name(obj, NULL,
                                  always, allow_undefined, data.name_only);
+               }
        } else {
                int i;
                for (i = 0; i < revs.nr; i++)