|
|
fix file permissions for cachefile and respect umask(2) - stagit-gopher - static git page generator for gopher |
|
|
 |
git clone git://git.codemadness.org/stagit-gopher (git://git.codemadness.org) |
|
|
 |
Log |
|
|
 |
Files |
|
|
 |
Refs |
|
|
 |
README |
|
|
 |
LICENSE |
|
|
|
--- |
|
|
 |
commit 769babb131e20c4d7ebe197cfc182bc76ea96c18 |
|
|
 |
parent 9420a097388c8c90a4f534d3b5f8d4f6b7f195bd |
|
|
 |
Author: Hiltjo Posthuma <hiltjo@codemadness.org> (mailto://) |
application/vnd.lotus-organizer |
|
|
Date: Fri, 17 Nov 2017 16:12:12 +0100 |
|
|
|
|
|
|
|
fix file permissions for cachefile and respect umask(2) |
|
|
|
|
|
|
|
Diffstat: |
|
|
|
M stagit-gopher.c | 12 ++++++++++-- |
|
|
|
|
|
|
|
1 file changed, 10 insertions(+), 2 deletions(-) |
|
|
|
--- |
|
|
 |
diff --git a/stagit-gopher.c b/stagit-gopher.c |
|
|
|
@@ -1,4 +1,5 @@ |
|
|
|
#include <sys/stat.h> |
|
|
|
+#include <sys/types.h> |
|
|
|
|
|
|
|
#include <err.h> |
|
|
|
#include <errno.h> |
|
|
|
@@ -1083,6 +1084,7 @@ main(int argc, char *argv[]) |
|
|
|
git_object *obj = NULL; |
|
|
|
const git_oid *head = NULL; |
|
|
|
const git_error *e = NULL; |
|
|
|
+ mode_t mask; |
|
|
|
FILE *fp, *fpread; |
|
|
|
char path[PATH_MAX], repodirabs[PATH_MAX + 1], *p; |
|
|
|
char tmppath[64] = "cache.XXXXXXXXXXXX", buf[BUFSIZ]; |
|
|
|
@@ -1256,8 +1258,14 @@ main(int argc, char *argv[]) |
|
|
|
fclose(fp); |
|
|
|
|
|
|
|
/* rename new cache file on success */ |
|
|
|
- if (cachefile && rename(tmppath, cachefile)) |
|
|
|
- err(1, "rename: '%s' to '%s'", tmppath, cachefile); |
|
|
|
+ if (cachefile) { |
|
|
|
+ if (rename(tmppath, cachefile)) |
|
|
|
+ err(1, "rename: '%s' to '%s'", tmppath, cachefile); |
|
|
|
+ umask((mask = umask(0))); |
|
|
|
+ if (chmod(cachefile, |
|
|
|
+ (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) & ~mask)) |
|
|
|
+ err(1, "chmod: '%s'", cachefile); |
|
|
|
+ } |
|
|
|
|
|
|
|
/* cleanup */ |
|
|
|
git_repository_free(repo); |
|