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
**/
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;