summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbeck <>2016-05-28 20:14:58 +0000
committerbeck <>2016-05-28 20:14:58 +0000
commit6b8904c308ff1f5dc15ac3f8dcfeffdd1609f4ce (patch)
treef1698990770eee94b68ae13263779569b2ed59a5
parentf5e33953c6132d71b8d15a64fad7aea0a2bf7c08 (diff)
downloadopenbsd-6b8904c308ff1f5dc15ac3f8dcfeffdd1609f4ce.tar.gz
openbsd-6b8904c308ff1f5dc15ac3f8dcfeffdd1609f4ce.tar.bz2
openbsd-6b8904c308ff1f5dc15ac3f8dcfeffdd1609f4ce.zip
Fix pledge violation with -P s used and we need to supply a password
for an http proxy - we need tty in this case. Found and fixed by Anthony Coulter <bsd@anthonycoulter.name>. ok tb@
-rw-r--r--src/usr.bin/nc/netcat.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/usr.bin/nc/netcat.c b/src/usr.bin/nc/netcat.c
index 1b22308d5a..95f276bc89 100644
--- a/src/usr.bin/nc/netcat.c
+++ b/src/usr.bin/nc/netcat.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: netcat.c,v 1.151 2016/05/28 19:39:16 beck Exp $ */ 1/* $OpenBSD: netcat.c,v 1.152 2016/05/28 20:14:58 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> 3 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org>
4 * Copyright (c) 2015 Bob Beck. All rights reserved. 4 * Copyright (c) 2015 Bob Beck. All rights reserved.
@@ -323,7 +323,13 @@ main(int argc, char *argv[])
323 if (pledge("stdio rpath wpath cpath tmppath unix", NULL) == -1) 323 if (pledge("stdio rpath wpath cpath tmppath unix", NULL) == -1)
324 err(1, "pledge"); 324 err(1, "pledge");
325 } else if (Fflag) { 325 } else if (Fflag) {
326 if (pledge("stdio inet dns sendfd", NULL) == -1) 326 if (Pflag) {
327 if (pledge("stdio inet dns sendfd tty", NULL) == -1)
328 err(1, "pledge");
329 } else if (pledge("stdio inet dns sendfd", NULL) == -1)
330 err(1, "pledge");
331 } else if (Pflag) {
332 if (pledge("stdio inet dns tty", NULL) == -1)
327 err(1, "pledge"); 333 err(1, "pledge");
328 } else if (usetls) { 334 } else if (usetls) {
329 if (pledge("stdio rpath inet dns", NULL) == -1) 335 if (pledge("stdio rpath inet dns", NULL) == -1)
@@ -434,7 +440,10 @@ main(int argc, char *argv[])
434 if (Kflag && (privkey = tls_load_file(Kflag, &privkeylen, NULL)) == NULL) 440 if (Kflag && (privkey = tls_load_file(Kflag, &privkeylen, NULL)) == NULL)
435 errx(1, "unable to load TLS key file %s", Kflag); 441 errx(1, "unable to load TLS key file %s", Kflag);
436 442
437 if (pledge("stdio inet dns", NULL) == -1) 443 if (Pflag) {
444 if (pledge("stdio inet dns tty", NULL) == -1)
445 err(1, "pledge");
446 } else if (pledge("stdio inet dns", NULL) == -1)
438 err(1, "pledge"); 447 err(1, "pledge");
439 448
440 if (tls_init() == -1) 449 if (tls_init() == -1)