ifix file permissions for cachefile and respect umask(2) - stagit-gemini - Stagit for gemini protocol Openbsd Err thinkerwim.openbsd.amsterdam 70 hgit clone git://thinkerwim.org/stagit-gemini.git URL:git://thinkerwim.org/stagit-gemini.git thinkerwim.org 70 1Log /git/stagit-gemini/log.gph thinkerwim.org 70 1Files /git/stagit-gemini/files.gph thinkerwim.org 70 1Refs /git/stagit-gemini/refs.gph thinkerwim.org 70 1README /git/stagit-gemini/file/README.gph thinkerwim.org 70 1LICENSE /git/stagit-gemini/file/LICENSE.gph thinkerwim.org 70 i--- Err thinkerwim.openbsd.amsterdam 70 1commit 769babb131e20c4d7ebe197cfc182bc76ea96c18 /git/stagit-gemini/commit/769babb131e20c4d7ebe197cfc182bc76ea96c18.gph thinkerwim.org 70 1parent 9420a097388c8c90a4f534d3b5f8d4f6b7f195bd /git/stagit-gemini/commit/9420a097388c8c90a4f534d3b5f8d4f6b7f195bd.gph thinkerwim.org 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org thinkerwim.org 70 iDate: Fri, 17 Nov 2017 16:12:12 +0100 Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 ifix file permissions for cachefile and respect umask(2) Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 iDiffstat: Err thinkerwim.openbsd.amsterdam 70 i M stagit-gopher.c | 12 ++++++++++-- Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i1 file changed, 10 insertions(+), 2 deletions(-) Err thinkerwim.openbsd.amsterdam 70 i--- Err thinkerwim.openbsd.amsterdam 70 1diff --git a/stagit-gopher.c b/stagit-gopher.c /git/stagit-gemini/file/stagit-gopher.c.gph thinkerwim.org 70 i@@ -1,4 +1,5 @@ Err thinkerwim.openbsd.amsterdam 70 i #include Err thinkerwim.openbsd.amsterdam 70 i+#include Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i #include Err thinkerwim.openbsd.amsterdam 70 i #include Err thinkerwim.openbsd.amsterdam 70 i@@ -1083,6 +1084,7 @@ main(int argc, char *argv[]) Err thinkerwim.openbsd.amsterdam 70 i git_object *obj = NULL; Err thinkerwim.openbsd.amsterdam 70 i const git_oid *head = NULL; Err thinkerwim.openbsd.amsterdam 70 i const git_error *e = NULL; Err thinkerwim.openbsd.amsterdam 70 i+ mode_t mask; Err thinkerwim.openbsd.amsterdam 70 i FILE *fp, *fpread; Err thinkerwim.openbsd.amsterdam 70 i char path[PATH_MAX], repodirabs[PATH_MAX + 1], *p; Err thinkerwim.openbsd.amsterdam 70 i char tmppath[64] = "cache.XXXXXXXXXXXX", buf[BUFSIZ]; Err thinkerwim.openbsd.amsterdam 70 i@@ -1256,8 +1258,14 @@ main(int argc, char *argv[]) Err thinkerwim.openbsd.amsterdam 70 i fclose(fp); Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i /* rename new cache file on success */ Err thinkerwim.openbsd.amsterdam 70 i- if (cachefile && rename(tmppath, cachefile)) Err thinkerwim.openbsd.amsterdam 70 i- err(1, "rename: '%s' to '%s'", tmppath, cachefile); Err thinkerwim.openbsd.amsterdam 70 i+ if (cachefile) { Err thinkerwim.openbsd.amsterdam 70 i+ if (rename(tmppath, cachefile)) Err thinkerwim.openbsd.amsterdam 70 i+ err(1, "rename: '%s' to '%s'", tmppath, cachefile); Err thinkerwim.openbsd.amsterdam 70 i+ umask((mask = umask(0))); Err thinkerwim.openbsd.amsterdam 70 i+ if (chmod(cachefile, Err thinkerwim.openbsd.amsterdam 70 i+ (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) & ~mask)) Err thinkerwim.openbsd.amsterdam 70 i+ err(1, "chmod: '%s'", cachefile); Err thinkerwim.openbsd.amsterdam 70 i+ } Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i /* cleanup */ Err thinkerwim.openbsd.amsterdam 70 i git_repository_free(repo); Err thinkerwim.openbsd.amsterdam 70 .