lib/util/util.c: move null-check before use
authorAurelien Aptel <aaptel@suse.com>
Thu, 25 Feb 2016 13:11:10 +0000 (14:11 +0100)
committerJeremy Allison <jra@samba.org>
Tue, 1 Mar 2016 01:25:22 +0000 (02:25 +0100)
moves a null pointer check *before* the pointer is used in
the strlen() call

- still allocate the `fname` array on the stack
- still compiles under C90 definition/code mixing rules

Signed-off-by: Aurelien Aptel <aaptel@suse.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <rb@sernet.de>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Mar  1 02:25:22 CET 2016 on sn-devel-144

lib/util/util.c

index 03edd7f7761571c915e9ee1907dd809a7ab54263..683741c60f7677e9f52ee951c53aa9cec1c0edcc 100644 (file)
@@ -66,15 +66,11 @@ _PUBLIC_ const char *tmpdir(void)
 **/
 int create_unlink_tmp(const char *dir)
 {
-       size_t len = strlen(dir);
+       size_t len = strlen(dir ? dir : (dir = tmpdir()));
        char fname[len+25];
        int fd;
        mode_t mask;
 
-       if (!dir) {
-               dir = tmpdir();
-       }
-
        len = snprintf(fname, sizeof(fname), "%s/listenerlock_XXXXXX", dir);
        if (len >= sizeof(fname)) {
                errno = ENOMEM;