From c65af7737032b1a2c743f113e3072d95afb34ccd Mon Sep 17 00:00:00 2001 From: Peter Pentchev Date: Sun, 31 May 2020 23:38:35 +0300 Subject: [PATCH] unzck: require a *.zck extension Blindly removing the last four characters from a filename may lead to unexpected results if somebody has created a zchunk archive with a non-standard name. --- src/unzck.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/unzck.c b/src/unzck.c index acb72d5..01eff6f 100644 --- a/src/unzck.c +++ b/src/unzck.c @@ -120,6 +120,13 @@ int main (int argc, char *argv[]) { zck_set_log_level(arguments.log_level); + if(!arguments.std_out) { + if(strlen(arguments.args[0]) < 5 || + strcmp(arguments.args[0] + strlen(arguments.args[0]) - 4, ".zck") != 0) { + dprintf(STDERR_FILENO, "Not a *.zck file: %s\n", arguments.args[0]); + exit(1); + } + } int src_fd = open(arguments.args[0], O_RDONLY); if(src_fd < 0) { dprintf(STDERR_FILENO, "Unable to open %s\n", arguments.args[0]); -- 2.30.2