X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/b66fecb428871a3eb274d9370671f1eaf8c5ccec..cfd47d9e77d3ec3cccbf9fb0ff6672c3b83b8fe3:/src/src/directory.c?ds=sidebyside diff --git a/src/src/directory.c b/src/src/directory.c index 2d4d565f4..94303db0b 100644 --- a/src/src/directory.c +++ b/src/src/directory.c @@ -2,9 +2,10 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 2010 - 2022 */ /* Copyright (c) University of Cambridge 1995 - 2009 */ -/* Copyright (c) The Exim Maintainers 2010 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ #include "exim.h" @@ -44,6 +45,9 @@ uschar c = 1; struct stat statbuf; uschar * path; +if (is_tainted(name)) + { p = US"create"; path = US name; errno = ERRNO_TAINT; goto bad; } + if (parent) { path = string_sprintf("%s%s%s", parent, US"/", name); @@ -85,7 +89,7 @@ return TRUE; bad: if (panic) log_write(0, LOG_MAIN|LOG_PANIC_DIE, - "Failed to %s directory \"%s\": %s\n", p, path, strerror(errno)); + "Failed to %s directory \"%s\": %s\n", p, path, exim_errstr(errno)); return FALSE; }