Adjust for 2.19.x series
* jk/detect-truncated-zlib-input cat-file: handle streaming failures consistently check_stream_sha1(): handle input underflow t1450: check large blob in trailing-garbage test
This commit is contained in:
@ -50,6 +50,13 @@ static int filter_object(const char *path, unsigned mode,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int stream_blob(const struct object_id *oid)
|
||||
{
|
||||
if (stream_blob_to_fd(1, oid, NULL, 0))
|
||||
die("unable to stream %s to stdout", oid_to_hex(oid));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
|
||||
int unknown_type)
|
||||
{
|
||||
@ -131,7 +138,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
|
||||
}
|
||||
|
||||
if (type == OBJ_BLOB)
|
||||
return stream_blob_to_fd(1, &oid, NULL, 0);
|
||||
return stream_blob(&oid);
|
||||
buf = read_object_file(&oid, &type, &size);
|
||||
if (!buf)
|
||||
die("Cannot read object %s", obj_name);
|
||||
@ -154,7 +161,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,
|
||||
oidcpy(&blob_oid, &oid);
|
||||
|
||||
if (oid_object_info(the_repository, &blob_oid, NULL) == OBJ_BLOB)
|
||||
return stream_blob_to_fd(1, &blob_oid, NULL, 0);
|
||||
return stream_blob(&blob_oid);
|
||||
/*
|
||||
* we attempted to dereference a tag to a blob
|
||||
* and failed; there may be new dereference
|
||||
@ -317,8 +324,9 @@ static void print_object_or_die(struct batch_options *opt, struct expand_data *d
|
||||
BUG("invalid cmdmode: %c", opt->cmdmode);
|
||||
batch_write(opt, contents, size);
|
||||
free(contents);
|
||||
} else if (stream_blob_to_fd(1, oid, NULL, 0) < 0)
|
||||
die("unable to stream %s to stdout", oid_to_hex(oid));
|
||||
} else {
|
||||
stream_blob(oid);
|
||||
}
|
||||
}
|
||||
else {
|
||||
enum object_type type;
|
||||
|
||||
Reference in New Issue
Block a user