summaryrefslogtreecommitdiff
path: root/archival/libunarchive/seek_by_jump.c
diff options
context:
space:
mode:
authorDenis Vlasenko2008-07-20 17:10:43 +0000
committerDenis Vlasenko2008-07-20 17:10:43 +0000
commitadc772a5f2b5b74f398aaa59c36739fee4ee7a85 (patch)
treec523a374fd7e9ec52fc935fa84f85dd068723998 /archival/libunarchive/seek_by_jump.c
parentb9bbc40f64f305dd09d8f3f31eb5632521f87f0c (diff)
downloadbusybox-adc772a5f2b5b74f398aaa59c36739fee4ee7a85.zip
busybox-adc772a5f2b5b74f398aaa59c36739fee4ee7a85.tar.gz
tar: fix handling of tarballs with symlinks with size field != 0
Diffstat (limited to 'archival/libunarchive/seek_by_jump.c')
-rw-r--r--archival/libunarchive/seek_by_jump.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/archival/libunarchive/seek_by_jump.c b/archival/libunarchive/seek_by_jump.c
index 031598e..0a259c9 100644
--- a/archival/libunarchive/seek_by_jump.c
+++ b/archival/libunarchive/seek_by_jump.c
@@ -8,7 +8,9 @@
void FAST_FUNC seek_by_jump(const archive_handle_t *archive_handle, unsigned amount)
{
- if (lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1) {
+ if (amount
+ && lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1
+ ) {
if (errno == ESPIPE)
seek_by_read(archive_handle, amount);
else