diff options
author | Daniel Friesel <derf@finalrewind.org> | 2019-07-13 11:52:24 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2019-07-13 11:52:24 +0200 |
commit | e57b7defb863902303c295947535d64b393d7761 (patch) | |
tree | a48c15bc188c64836eb8c1f4e34fe6a2306a1182 /src/wallpaper.c | |
parent | 2c6e4fbabf502840a5138c489e3ace16294a9a75 (diff) | |
parent | 2c38c9da3ea45d6c692314ad2e2f7213de2afaeb (diff) |
Merge branch 'stoeckmann-fchmod'
Diffstat (limited to 'src/wallpaper.c')
-rw-r--r-- | src/wallpaper.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/wallpaper.c b/src/wallpaper.c index 9df259f..96b4f90 100644 --- a/src/wallpaper.c +++ b/src/wallpaper.c @@ -452,6 +452,7 @@ void feh_wm_set_bg(char *fil, Imlib_Image im, int centered, int scaled, home = getenv("HOME"); if (home) { FILE *fp; + int fd; char *path; char *absolute_path; struct stat s; @@ -519,11 +520,11 @@ void feh_wm_set_bg(char *fil, Imlib_Image im, int centered, int scaled, free(absolute_path); } fputc('\n', fp); - fclose(fp); - stat(path, &s); - if (chmod(path, s.st_mode | S_IXUSR | S_IXGRP) != 0) { + fd = fileno(fp); + if (fstat(fd, &s) != 0 || fchmod(fd, s.st_mode | S_IXUSR | S_IXGRP) != 0) { weprintf("Can't set %s as executable", path); } + fclose(fp); } free(path); } |