From eff2b44f6d9193a8d057e505cab0354d35a23edb Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Fri, 27 Sep 2024 16:09:23 +0900 Subject: [PATCH] Impl. setting stored UID/GID if EUID 0 --- src/archiver.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/archiver.c b/src/archiver.c index 73bf219..4d20f71 100644 --- a/src/archiver.c +++ b/src/archiver.c @@ -2320,6 +2320,13 @@ int simple_archiver_parse_archive_version_1(FILE *in_f, int_fast8_t do_extract, SIMPLE_ARCHIVER_PLATFORM == SIMPLE_ARCHIVER_PLATFORM_LINUX if (chmod(file_info->filename, permissions) == -1) { return SDAS_INTERNAL_ERROR; + } else if (geteuid() == 0 && + chown(file_info->filename, file_info->uid, + file_info->gid) != 0) { + fprintf(stderr, + "ERROR Failed to set UID/GID as EUID 0 of file \"%s\"!\n", + file_info->filename); + return SDAS_INTERNAL_ERROR; } #endif } else {