aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHiltjo Posthuma <[email protected]>2022-01-03 12:21:12 +0100
committerHiltjo Posthuma <[email protected]>2022-01-03 12:22:52 +0100
commit4d19863b062ac469fe09dec014976ba3b8677fb0 (patch)
treed847682155a0c875ef38f070294258d253b637c4
parentdf2a31c67a7b6ca782121248f650526a4fbe08d2 (diff)
downloadstagit-4d19863b062ac469fe09dec014976ba3b8677fb0.tar.gz
stagit-4d19863b062ac469fe09dec014976ba3b8677fb0.zip
libgit2 config opts: set the search to an empty path
Otherwise this would search outside the unveiled paths and cause an unveil violation. Reported by Anton Lindqvist, thanks!
-rw-r--r--stagit-index.c4
-rw-r--r--stagit.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/stagit-index.c b/stagit-index.c
index 087ae1e..7c1f76d 100644
--- a/stagit-index.c
+++ b/stagit-index.c
@@ -173,7 +173,11 @@ main(int argc, char *argv[])
return 1;
}
+ /* do not search outside the git repository:
+ GIT_CONFIG_LEVEL_APP is the highest level currently */
git_libgit2_init();
+ for (i = 1; i <= GIT_CONFIG_LEVEL_APP; i++)
+ git_libgit2_opts(GIT_OPT_SET_SEARCH_PATH, i, "");
#ifdef __OpenBSD__
if (pledge("stdio rpath", NULL) == -1)
diff --git a/stagit.c b/stagit.c
index 22fc2aa..0d53b72 100644
--- a/stagit.c
+++ b/stagit.c
@@ -1220,7 +1220,11 @@ main(int argc, char *argv[])
if (!realpath(repodir, repodirabs))
err(1, "realpath");
+ /* do not search outside the git repository:
+ GIT_CONFIG_LEVEL_APP is the highest level currently */
git_libgit2_init();
+ for (i = 1; i <= GIT_CONFIG_LEVEL_APP; i++)
+ git_libgit2_opts(GIT_OPT_SET_SEARCH_PATH, i, "");
#ifdef __OpenBSD__
if (unveil(repodir, "r") == -1)