git://git.exim.org
/
users
/
jgh
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Taint: enforce checking of directory creates
[users/jgh/exim.git]
/
src
/
src
/
directory.c
diff --git
a/src/src/directory.c
b/src/src/directory.c
index 2d4d565f4ede31504743571a5b1ded263d0ebc42..f54a781b7c22111016095251c23bf913977a8cd2 100644
(file)
--- a/
src/src/directory.c
+++ b/
src/src/directory.c
@@
-44,6
+44,9
@@
uschar c = 1;
struct stat statbuf;
uschar * path;
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);
if (parent)
{
path = string_sprintf("%s%s%s", parent, US"/", name);
@@
-85,7
+88,7
@@
return TRUE;
bad:
if (panic) log_write(0, LOG_MAIN|LOG_PANIC_DIE,
bad:
if (panic) log_write(0, LOG_MAIN|LOG_PANIC_DIE,
- "Failed to %s directory \"%s\": %s\n", p, path,
strerro
r(errno));
+ "Failed to %s directory \"%s\": %s\n", p, path,
exim_errst
r(errno));
return FALSE;
}
return FALSE;
}