aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXabier Oneca <xoneca@gmail.com>2020-12-01 23:14:59 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2020-12-08 18:46:32 +0100
commitabaee4aada7c91da6a43a83e9a73f98916a803a4 (patch)
tree29bec8376182d55165b245806b39e55a43dd1eca
parentc9b93cf2908c845c60ad70cbed0074c4c0903208 (diff)
downloadbusybox-abaee4aada7c91da6a43a83e9a73f98916a803a4.tar.gz
mkdtemp: proper error detection on mktemp
On error, mktemp returns an empty string, not NULL. Signed-off-by: Xabier Oneca <xoneca@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--libbb/platform.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libbb/platform.c b/libbb/platform.c
index 03bbb798b..d2b263a6d 100644
--- a/libbb/platform.c
+++ b/libbb/platform.c
@@ -107,7 +107,8 @@ void* FAST_FUNC memrchr(const void *s, int c, size_t n)
/* This is now actually part of POSIX.1, but was only added in 2008 */
char* FAST_FUNC mkdtemp(char *template)
{
- if (mktemp(template) == NULL || mkdir(template, 0700) != 0)
+ /* NB: on error, mktemp returns an empty string, not NULL */
+ if (mktemp(template)[0] == '\0' || mkdir(template, 0700) != 0)
return NULL;
return template;
}