chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util: add a bit of syntactic sugar to run short code fragments with a different umask
[elogind.git]
/
src
/
shared
/
util.c
diff --git
a/src/shared/util.c
b/src/shared/util.c
index d861ca9f091ae38e42d475fbf158f85220de360f..1bffd84d1fa71610df46a445f405581241d8d271 100644
(file)
--- a/
src/shared/util.c
+++ b/
src/shared/util.c
@@
-5732,12
+5732,12
@@
int search_and_fopen_nulstr(const char *path, const char *mode, const char *sear
int create_tmp_dir(char template[], char** dir_name) {
int r = 0;
char *d, *dt;
int create_tmp_dir(char template[], char** dir_name) {
int r = 0;
char *d, *dt;
- mode_t _cleanup_umask_ u;
assert(dir_name);
assert(dir_name);
- u = umask(0077);
- d = mkdtemp(template);
+ RUN_WITH_UMASK(0077) {
+ d = mkdtemp(template);
+ }
if (!d) {
log_error("Can't create directory %s: %m", template);
return -errno;
if (!d) {
log_error("Can't create directory %s: %m", template);
return -errno;
@@
-5749,9
+5749,10
@@
int create_tmp_dir(char template[], char** dir_name) {
goto fail3;
}
goto fail3;
}
- umask(0000);
- r = mkdir(dt, 0777);
- if (r) {
+ RUN_WITH_UMASK(0000) {
+ r = mkdir(dt, 0777);
+ }
+ if (r < 0) {
log_error("Can't create directory %s: %m", dt);
r = -errno;
goto fail2;
log_error("Can't create directory %s: %m", dt);
r = -errno;
goto fail2;