aboutsummaryrefslogtreecommitdiff
path: root/libbb/unarchive.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/unarchive.c')
-rw-r--r--libbb/unarchive.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libbb/unarchive.c b/libbb/unarchive.c
index ca654a6ca..91db2e3b1 100644
--- a/libbb/unarchive.c
+++ b/libbb/unarchive.c
@@ -188,7 +188,7 @@ char *extract_archive(FILE *src_stream, FILE *out_stream, const file_header_t *f
* file pointed to, so dont try and change the date or mode, lchown does
* does the right thing, but isnt available in older versions of libc */
if (S_ISLNK(file_entry->mode)) {
-#if (__GLIBC__ >= 2) && (__GLIBC_MINOR__ >= 1)
+#if (__GLIBC__ > 2) && (__GLIBC_MINOR__ > 1)
lchown(full_name, file_entry->uid, file_entry->gid);
#endif
} else {
@@ -392,7 +392,8 @@ file_header_t *get_header_cpio(FILE *src_stream)
case '1': /* "newc" header format */
cpio_entry = (file_header_t *) xcalloc(1, sizeof(file_header_t));
sscanf(cpio_header, "%6c%8x%8x%8x%8x%8x%8lx%8lx%16c%8x%8x%8x%8c",
- dummy, &inode, &cpio_entry->mode, &cpio_entry->uid, &cpio_entry->gid,
+ dummy, &inode, (unsigned int*)&cpio_entry->mode,
+ (unsigned int*)&cpio_entry->uid, (unsigned int*)&cpio_entry->gid,
&nlink, &cpio_entry->mtime, &cpio_entry->size,
dummy, &major, &minor, &namesize, dummy);