pledge after git_libgit2_init - stagit-gopher - A git gopher frontend. (mirror)
(HTM) 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 c1b5e802f0d0c349faf8d4e6b6988dcfdc574488
(DIR) parent ec19160fa44ca478dd7e319eea8ee1ee1a0973e2
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Mon, 26 Mar 2018 20:11:56 +0200
pledge after git_libgit2_init
this is because libgit uses curl which uses some initialization
checks, namely an IPv6 check which creates a socket.
Diffstat:
M stagit-gopher.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
---
(DIR) diff --git a/stagit-gopher.c b/stagit-gopher.c
@@ -1110,9 +1110,6 @@ main(int argc, char *argv[])
size_t n;
int i, fd;
- if (pledge("stdio rpath wpath cpath fattr", NULL) == -1)
- err(1, "pledge");
-
setlocale(LC_CTYPE, "");
for (i = 1; i < argc; i++) {
@@ -1141,8 +1138,6 @@ main(int argc, char *argv[])
usage(argv[0]);
}
}
- if (!cachefile && pledge("stdio rpath wpath cpath", NULL) == -1)
- err(1, "pledge");
if (!repodir)
usage(argv[0]);
@@ -1151,6 +1146,14 @@ main(int argc, char *argv[])
git_libgit2_init();
+ if (cachefile) {
+ if (pledge("stdio rpath wpath cpath fattr", NULL) == -1)
+ err(1, "pledge");
+ } else {
+ if (pledge("stdio rpath wpath cpath", NULL) == -1)
+ err(1, "pledge");
+ }
+
if (git_repository_open_ext(&repo, repodir,
GIT_REPOSITORY_OPEN_NO_SEARCH, NULL) < 0) {
e = giterr_last();