diff --git a/builtin-cat-file.c b/builtin-cat-file.c
index f8b3160668e1eeff3ef9a893459c64992aa53b5b..880e75af5e1951689a417aa47e64f99a20d46ae6 100644 (file)
--- a/builtin-cat-file.c
+++ b/builtin-cat-file.c
static int batch_one_object(const char *obj_name, int print_contents)
{
unsigned char sha1[20];
static int batch_one_object(const char *obj_name, int print_contents)
{
unsigned char sha1[20];
- enum object_type type;
+ enum object_type type = 0;
unsigned long size;
void *contents = contents;
unsigned long size;
void *contents = contents;
else
type = sha1_object_info(sha1, &size);
else
type = sha1_object_info(sha1, &size);
- if (type <= 0)
- return 1;
+ if (type <= 0) {
+ printf("%s missing\n", obj_name);
+ fflush(stdout);
+ return 0;
+ }
printf("%s %s %lu\n", sha1_to_hex(sha1), typename(type), size);
fflush(stdout);
printf("%s %s %lu\n", sha1_to_hex(sha1), typename(type), size);
fflush(stdout);
write_or_die(1, contents, size);
printf("\n");
fflush(stdout);
write_or_die(1, contents, size);
printf("\n");
fflush(stdout);
+ free(contents);
}
return 0;
}
return 0;