pledge after git_libgit2_init - stagit - static git page generator
 (HTM) git clone git://git.codemadness.org/stagit
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 3c07e52f98b0f49250c3de026b31202b426eb45a
 (DIR) parent f53f481b3f02431b151ae9953998d7c7b3138585
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Mon, 26 Mar 2018 20:08:19 +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.c                            |      13 ++++++++-----
       
       1 file changed, 8 insertions(+), 5 deletions(-)
       ---
 (DIR) diff --git a/stagit.c b/stagit.c
       @@ -1027,9 +1027,6 @@ main(int argc, char *argv[])
                size_t n;
                int i, fd;
        
       -        if (pledge("stdio rpath wpath cpath fattr", NULL) == -1)
       -                err(1, "pledge");
       -
                for (i = 1; i < argc; i++) {
                        if (argv[i][0] != '-') {
                                if (repodir)
       @@ -1052,8 +1049,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]);
        
       @@ -1062,6 +1057,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();