tar: compat: handle tarballs with only one zero block at the end
This commit is contained in:
parent
6dd03f04ea
commit
23ffb6a4a2
@ -90,7 +90,15 @@ char get_header_tar(archive_handle_t *archive_handle)
|
||||
|
||||
again_after_align:
|
||||
|
||||
xread(archive_handle->src_fd, &tar, 512);
|
||||
i = full_read(archive_handle->src_fd, &tar, 512);
|
||||
/* if GNU tar sees EOF in above read, it says:
|
||||
* "tar: A lone zero block at N", where N = kilobyte
|
||||
* where EOF was met (not EOF block, actual EOF!),
|
||||
* and tar will exit with error code 0! Mimic exit(0): */
|
||||
if (i == 0)
|
||||
xfunc_error_retval = 0;
|
||||
if (i != 512)
|
||||
bb_error_msg_and_die("short read");
|
||||
archive_handle->offset += 512;
|
||||
|
||||
/* If there is no filename its an empty header */
|
||||
|
Loading…
Reference in New Issue
Block a user