ifix: add "fattr" pledge for chmod(2) for cachefile - 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 181145cd95ae69fc4e54d98047aa1dc25d16b404 /git/stagit-gemini/commit/181145cd95ae69fc4e54d98047aa1dc25d16b404.gph thinkerwim.org 70 1parent 77cc9b4e4f2c2d70880abf48090755902ee45c4f /git/stagit-gemini/commit/77cc9b4e4f2c2d70880abf48090755902ee45c4f.gph thinkerwim.org 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org thinkerwim.org 70 iDate: Sun, 19 Nov 2017 14:57:01 +0100 Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 ifix: add "fattr" pledge for chmod(2) for cachefile Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 iimprove checks for when head is NULL (empty repo) 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, 5 insertions(+), 7 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@@ -1091,7 +1091,7 @@ main(int argc, char *argv[]) Err thinkerwim.openbsd.amsterdam 70 i size_t n; Err thinkerwim.openbsd.amsterdam 70 i int i, fd; Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i- if (pledge("stdio rpath wpath cpath", NULL) == -1) Err thinkerwim.openbsd.amsterdam 70 i+ if (pledge("stdio rpath wpath cpath fattr", NULL) == -1) Err thinkerwim.openbsd.amsterdam 70 i err(1, "pledge"); Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i setlocale(LC_CTYPE, ""); Err thinkerwim.openbsd.amsterdam 70 i@@ -1111,6 +1111,8 @@ main(int argc, char *argv[]) Err thinkerwim.openbsd.amsterdam 70 i cachefile = argv[++i]; Err thinkerwim.openbsd.amsterdam 70 i } Err thinkerwim.openbsd.amsterdam 70 i } Err thinkerwim.openbsd.amsterdam 70 i+ if (!cachefile && pledge("stdio rpath wpath cpath", NULL) == -1) Err thinkerwim.openbsd.amsterdam 70 i+ err(1, "pledge"); Err thinkerwim.openbsd.amsterdam 70 i if (!repodir) Err thinkerwim.openbsd.amsterdam 70 i usage(argv[0]); Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i@@ -1131,10 +1133,6 @@ main(int argc, char *argv[]) Err thinkerwim.openbsd.amsterdam 70 i head = git_object_id(obj); Err thinkerwim.openbsd.amsterdam 70 i git_object_free(obj); Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i- /* don't cache if there is no HEAD */ Err thinkerwim.openbsd.amsterdam 70 i- if (!head) Err thinkerwim.openbsd.amsterdam 70 i- cachefile = NULL; Err thinkerwim.openbsd.amsterdam 70 i- Err thinkerwim.openbsd.amsterdam 70 i /* use directory name as name */ Err thinkerwim.openbsd.amsterdam 70 i if ((name = strrchr(repodirabs, '/'))) Err thinkerwim.openbsd.amsterdam 70 i name++; Err thinkerwim.openbsd.amsterdam 70 i@@ -1196,7 +1194,7 @@ main(int argc, char *argv[]) Err thinkerwim.openbsd.amsterdam 70 i fprintf(fp, "%-50.50s ", "Commit message"); Err thinkerwim.openbsd.amsterdam 70 i fprintf(fp, "%s\n", "Author"); Err thinkerwim.openbsd.amsterdam 70 i Err thinkerwim.openbsd.amsterdam 70 i- if (cachefile) { Err thinkerwim.openbsd.amsterdam 70 i+ if (cachefile && head) { Err thinkerwim.openbsd.amsterdam 70 i /* read from cache file (does not need to exist) */ Err thinkerwim.openbsd.amsterdam 70 i if ((rcachefp = fopen(cachefile, "r"))) { Err thinkerwim.openbsd.amsterdam 70 i if (!fgets(lastoidstr, sizeof(lastoidstr), rcachefp)) Err thinkerwim.openbsd.amsterdam 70 i@@ -1258,7 +1256,7 @@ 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) { Err thinkerwim.openbsd.amsterdam 70 i+ if (cachefile && head) { 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 .