From ee312cfd05c1d1d38f3a5dd10872b97cbc11902c Mon Sep 17 00:00:00 2001 From: Martin Matuska Date: Tue, 25 Jul 2023 15:06:15 +0200 Subject: [PATCH] cpio: multiple fixes in list_item_verbose() Do not call strftime() with NULL timeptr Adjust uids and gids buffers as cpio_i64toa() may return up to 22 bytes Fixes #1934 Fixes #1935 --- cpio/cpio.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cpio/cpio.c b/cpio/cpio.c index f2d83d94b..b02a142f8 100644 --- a/cpio/cpio.c +++ b/cpio/cpio.c @@ -1146,7 +1146,7 @@ list_item_verbose(struct cpio *cpio, struct archive_entry *entry) { char size[32]; char date[32]; - char uids[16], gids[16]; + char uids[22], gids[22]; const char *uname, *gname; FILE *out = stdout; const char *fmt; @@ -1210,7 +1210,10 @@ list_item_verbose(struct cpio *cpio, struct archive_entry *entry) #else ltime = localtime(&mtime); #endif - strftime(date, sizeof(date), fmt, ltime); + if (ltime != NULL) + strftime(date, sizeof(date), fmt, ltime); + else + strcpy(date, "invalid mtime"); fprintf(out, "%s%3d %-8s %-8s %8s %12s %s", archive_entry_strmode(entry), -- 2.47.2