OpenBSD: unveil after ncurses(3) init to support TERMINFO

initscr(3) in uiInitEarly() attempts more than /usr/share/terminfo/, see
`mandoc -O tag=TERMINFO ncurses`.

Even though non-default terminfo handling seems rare and it is unlikely
to have ever caused a problem for catgirl users on OpenBSD, the current
is still wrong by oversimplifying it.

Avoid the entire curses/unveil clash by setting up the screen before
unveiling.
master
Klemens Nanni 2021-06-07 23:40:40 +00:00 committed by C. McEnroe
parent a989e156a1
commit c97a9eb870
1 changed files with 4 additions and 4 deletions

8
chat.c
View File

@ -157,7 +157,6 @@ static void unveilAll(const char *trust, const char *cert, const char *priv) {
const char *path;
const char *perm;
} paths[] = {
{ "/usr/share/terminfo", "r" },
{ tls_default_ca_cert_file(), "r" },
};
for (size_t i = 0; i < ARRAY_LEN(paths); ++i) {
@ -306,15 +305,16 @@ int main(int argc, char *argv[]) {
editCompleteAdd();
commandCompleteAdd();
ircConfig(insecure, trust, cert, priv);
uiInitEarly();
#ifdef __OpenBSD__
if (self.restricted) unveilAll(trust, cert, priv);
int error = pledge("stdio rpath wpath cpath inet dns tty proc exec", NULL);
if (error) err(EX_OSERR, "pledge");
#endif
ircConfig(insecure, trust, cert, priv);
uiInitEarly();
if (save) {
uiLoad(save);
atexit(exitSave);