rpm2cpio: handle unseekable input correctly
function old new delta
data_skip 14 20 +6
seek_by_jump 67 72 +5
data_align 81 84 +3
seek_by_read 20 19 -1
skip_header 99 94 -5
rpm2cpio_main 183 177 -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/3 up/down: 14/-12) Total: 2 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/archival/libunarchive/seek_by_jump.c b/archival/libunarchive/seek_by_jump.c
index 0a259c9..7181cb3 100644
--- a/archival/libunarchive/seek_by_jump.c
+++ b/archival/libunarchive/seek_by_jump.c
@@ -6,13 +6,13 @@
#include "libbb.h"
#include "unarchive.h"
-void FAST_FUNC seek_by_jump(const archive_handle_t *archive_handle, unsigned amount)
+void FAST_FUNC seek_by_jump(int fd, off_t amount)
{
if (amount
- && lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1
+ && lseek(fd, amount, SEEK_CUR) == (off_t) -1
) {
if (errno == ESPIPE)
- seek_by_read(archive_handle, amount);
+ seek_by_read(fd, amount);
else
bb_perror_msg_and_die("seek failure");
}