duckduckgo: fix an abort "rpath" on OpenBSD - frontends - front-ends for some sites (experiment) (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit e0eb56d566e98aa2c886de31b9df6c7e6636b00a (DIR) parent bb2aaedc735f352dc4f90f427f22b94bd906d917 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org> Date: Thu, 3 Sep 2020 17:05:02 +0200 duckduckgo: fix an abort "rpath" on OpenBSD Diffstat: M duckduckgo/cli.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) --- (DIR) diff --git a/duckduckgo/cli.c b/duckduckgo/cli.c @@ -2,6 +2,7 @@ #include <ctype.h> #include <err.h> +#include <errno.h> #include <locale.h> #include <stdio.h> #include <stdlib.h> @@ -10,6 +11,7 @@ #include <wchar.h> #include "duckduckgo.h" +#include "https.h" #include "util.h" #define OUT(s) fputs((s), stdout) @@ -34,15 +36,29 @@ main(int argc, char *argv[]) setlocale(LC_CTYPE, ""); - if (pledge("stdio", NULL) == -1) - err(1, "pledge"); + if (pledge("stdio dns inet rpath unveil", NULL) == -1) { + fprintf(stderr, "pledge: %s\n", strerror(errno)); + exit(1); + } + if (unveil(TLS_CA_CERT_FILE, "r") == -1) { + fprintf(stderr, "unveil: %s\n", strerror(errno)); + exit(1); + } + if (unveil(NULL, NULL) == -1) { + fprintf(stderr, "unveil: %s\n", strerror(errno)); + exit(1); + } if (argc != 2) { fprintf(stderr, "usage: %s <search>\n", argv[0]); exit(1); } - if ((results = duckduckgo_search(argv[1]))) { + results = duckduckgo_search(argv[1]); + if (pledge("stdio", NULL) == -1) + err(1, "pledge"); + + if (results) { for (i = 0; i < results->nitems; i++) { result = &(results->items[i]);