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