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();