Introduction
Introduction Statistics Contact Development Disclaimer Help
tfix file permissions for cachefile and respect umask(2) - stagit - static git …
git clone git://src.adamsgaard.dk/stagit
Log
Files
Refs
README
LICENSE
---
commit 26bd89f681b631ce3596148c9320c3208e16f8e9
parent 1bab6952c6dcac50e66418f117032bb0f627d559
Author: Hiltjo Posthuma <[email protected]>
Date: Fri, 10 Nov 2017 20:55:20 +0100
fix file permissions for cachefile and respect umask(2)
Diffstat:
M stagit.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/stagit.c b/stagit.c
t@@ -1,4 +1,5 @@
#include <sys/stat.h>
+#include <sys/types.h>
#include <err.h>
#include <errno.h>
t@@ -995,6 +996,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];
t@@ -1165,8 +1167,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);
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.