From: Namhyung Kim Date: Sun, 29 Sep 2013 10:11:37 +0000 (+0900) Subject: libmount: Save errno if mkostemp() failed X-Git-Tag: v2.24-rc2~83 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1dbaf5cc72a7af5a2ee4692366a74acb960203fe;p=thirdparty%2Futil-linux.git libmount: Save errno if mkostemp() failed After mkostemp() failed, umask() and free() might alter the errno to another value. Not sure those calls really changes the errno or not. But let's be more conservative. Signed-off-by: Namhyung Kim --- diff --git a/libmount/src/utils.c b/libmount/src/utils.c index 3cab936441..7930e29deb 100644 --- a/libmount/src/utils.c +++ b/libmount/src/utils.c @@ -849,6 +849,8 @@ int mnt_open_uniq_filename(const char *filename, char **name) oldmode = umask(S_IRGRP|S_IWGRP|S_IXGRP| S_IROTH|S_IWOTH|S_IXOTH); fd = mkostemp(n, O_RDWR|O_CREAT|O_EXCL|O_CLOEXEC); + if (fd < 0) + fd = -errno; umask(oldmode); if (fd >= 0 && name) @@ -856,7 +858,7 @@ int mnt_open_uniq_filename(const char *filename, char **name) else free(n); - return fd < 0 ? -errno : fd; + return fd; } /**