diff options
Diffstat (limited to 'archival/cpio.c')
-rw-r--r-- | archival/cpio.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/archival/cpio.c b/archival/cpio.c index 167931bdb..933d520c2 100644 --- a/archival/cpio.c +++ b/archival/cpio.c | |||
@@ -354,6 +354,12 @@ static NOINLINE int cpio_o(void) | |||
354 | #endif | 354 | #endif |
355 | #endif | 355 | #endif |
356 | 356 | ||
357 | if (sizeof(st.st_size) > 4 | ||
358 | && st.st_size > (off_t)0xffffffff | ||
359 | ) { | ||
360 | bb_error_msg_and_die("error: file '%s' is larger than 4GB", name); | ||
361 | } | ||
362 | |||
357 | bytes += printf("070701" | 363 | bytes += printf("070701" |
358 | "%08X%08X%08X%08X%08X%08X%08X" | 364 | "%08X%08X%08X%08X%08X%08X%08X" |
359 | "%08X%08X%08X%08X" /* GNU cpio uses uppercase hex */ | 365 | "%08X%08X%08X%08X" /* GNU cpio uses uppercase hex */ |