fix: add "fattr" pledge for chmod(2) for cachefile - stagit-gopher - A git gopher frontend. (mirror) HTML git clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/ DIR Log DIR Files DIR Refs DIR Tags DIR README DIR LICENSE --- DIR commit 181145cd95ae69fc4e54d98047aa1dc25d16b404 DIR parent 77cc9b4e4f2c2d70880abf48090755902ee45c4f HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org> Date: Sun, 19 Nov 2017 14:57:01 +0100 fix: add "fattr" pledge for chmod(2) for cachefile improve checks for when head is NULL (empty repo) Diffstat: M stagit-gopher.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) --- DIR diff --git a/stagit-gopher.c b/stagit-gopher.c @@ -1091,7 +1091,7 @@ main(int argc, char *argv[]) size_t n; int i, fd; - if (pledge("stdio rpath wpath cpath", NULL) == -1) + if (pledge("stdio rpath wpath cpath fattr", NULL) == -1) err(1, "pledge"); setlocale(LC_CTYPE, ""); @@ -1111,6 +1111,8 @@ main(int argc, char *argv[]) cachefile = argv[++i]; } } + if (!cachefile && pledge("stdio rpath wpath cpath", NULL) == -1) + err(1, "pledge"); if (!repodir) usage(argv[0]); @@ -1131,10 +1133,6 @@ main(int argc, char *argv[]) head = git_object_id(obj); git_object_free(obj); - /* don't cache if there is no HEAD */ - if (!head) - cachefile = NULL; - /* use directory name as name */ if ((name = strrchr(repodirabs, '/'))) name++; @@ -1196,7 +1194,7 @@ main(int argc, char *argv[]) fprintf(fp, "%-50.50s ", "Commit message"); fprintf(fp, "%s\n", "Author"); - if (cachefile) { + if (cachefile && head) { /* read from cache file (does not need to exist) */ if ((rcachefp = fopen(cachefile, "r"))) { if (!fgets(lastoidstr, sizeof(lastoidstr), rcachefp)) @@ -1258,7 +1256,7 @@ main(int argc, char *argv[]) fclose(fp); /* rename new cache file on success */ - if (cachefile) { + if (cachefile && head) { if (rename(tmppath, cachefile)) err(1, "rename: '%s' to '%s'", tmppath, cachefile); umask((mask = umask(0)));