]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
safe_mkstemp*(): Truncate prefix to original length if creation failed.
authorTimo Sirainen <tss@iki.fi>
Wed, 8 Jul 2009 02:35:50 +0000 (22:35 -0400)
committerTimo Sirainen <tss@iki.fi>
Wed, 8 Jul 2009 02:35:50 +0000 (22:35 -0400)
--HG--
branch : HEAD

src/lib/safe-mkstemp.c

index d0a83ef1ffed71677b69e9c02d54dc826cc61d85..cde356b000e5237c1d7cc9301dfd3f541c530a8e 100644 (file)
@@ -33,6 +33,7 @@ safe_mkstemp_full(string_t *prefix, mode_t mode, uid_t uid, gid_t gid,
 
                if (errno != ENOENT) {
                        i_error("stat(%s) failed: %m", str_c(prefix));
+                       str_truncate(prefix, prefix_len);
                        return -1;
                }
 
@@ -45,6 +46,7 @@ safe_mkstemp_full(string_t *prefix, mode_t mode, uid_t uid, gid_t gid,
                if (errno != EEXIST) {
                        if (errno != ENOENT && errno != EACCES)
                                i_error("open(%s) failed: %m", str_c(prefix));
+                       str_truncate(prefix, prefix_len);
                        return -1;
                }
        }