fix previous for unpriv'd installs. from dholland. bump PKGREVISION.diff -r1.99 -r1.100 pkgsrc/misc/screen/Makefile
(maya)
@@ -1,17 +1,17 @@ | @@ -1,17 +1,17 @@ | |||
1 | # $NetBSD: Makefile,v 1.99 2017/01/25 00:18:02 maya Exp $ | 1 | # $NetBSD: Makefile,v 1.100 2017/01/25 01:17:16 maya Exp $ | |
2 | 2 | |||
3 | DISTNAME= screen-4.5.0 | 3 | DISTNAME= screen-4.5.0 | |
4 | PKGREVISION= 1 | 4 | PKGREVISION= 2 | |
5 | CATEGORIES= misc shells | 5 | CATEGORIES= misc shells | |
6 | MASTER_SITES= ${MASTER_SITE_GNU:=screen/} | 6 | MASTER_SITES= ${MASTER_SITE_GNU:=screen/} | |
7 | 7 | |||
8 | MAINTAINER= kimmo@suominen.com | 8 | MAINTAINER= kimmo@suominen.com | |
9 | HOMEPAGE= http://www.gnu.org/software/screen/screen.html | 9 | HOMEPAGE= http://www.gnu.org/software/screen/screen.html | |
10 | COMMENT= Multi-screen window manager | 10 | COMMENT= Multi-screen window manager | |
11 | LICENSE= gnu-gpl-v3 | 11 | LICENSE= gnu-gpl-v3 | |
12 | 12 | |||
13 | # In file included from list_display.c:36: | 13 | # In file included from list_display.c:36: | |
14 | # In file included from ./screen.h:150: | 14 | # In file included from ./screen.h:150: | |
15 | # ./display.h:154:19: error: use of undeclared identifier 'T_N' | 15 | # ./display.h:154:19: error: use of undeclared identifier 'T_N' | |
16 | #MAKE_JOBS_SAFE= no | 16 | #MAKE_JOBS_SAFE= no | |
17 | 17 |
@@ -1,20 +1,20 @@ | @@ -1,20 +1,20 @@ | |||
1 | $NetBSD: distinfo,v 1.44 2017/01/25 00:18:02 maya Exp $ | 1 | $NetBSD: distinfo,v 1.45 2017/01/25 01:17:16 maya Exp $ | |
2 | 2 | |||
3 | SHA1 (screen-4.5.0.tar.gz) = b329f538e7265405a5c14e13520e95ced9d2cb17 | 3 | SHA1 (screen-4.5.0.tar.gz) = b329f538e7265405a5c14e13520e95ced9d2cb17 | |
4 | RMD160 (screen-4.5.0.tar.gz) = cb412991fa2e3ffb6e4ec34449176eccb39a24a9 | 4 | RMD160 (screen-4.5.0.tar.gz) = cb412991fa2e3ffb6e4ec34449176eccb39a24a9 | |
5 | SHA512 (screen-4.5.0.tar.gz) = b2705ed9604355d4153d7902f820af6131a1f2387650f5c6efeda7acf543aad48e8603c26d7c6e74213c8eece994d5d9bb0d114bc19c8d8f3d8e99c00ea4a484 | 5 | SHA512 (screen-4.5.0.tar.gz) = b2705ed9604355d4153d7902f820af6131a1f2387650f5c6efeda7acf543aad48e8603c26d7c6e74213c8eece994d5d9bb0d114bc19c8d8f3d8e99c00ea4a484 | |
6 | Size (screen-4.5.0.tar.gz) = 963233 bytes | 6 | Size (screen-4.5.0.tar.gz) = 963233 bytes | |
7 | SHA1 (patch-aa) = 39c6fa5bda62b2891cecf4a5e9598b179ea8b4dc | 7 | SHA1 (patch-aa) = 39c6fa5bda62b2891cecf4a5e9598b179ea8b4dc | |
8 | SHA1 (patch-ab) = 40911979a540645db2a17861328292add22898d3 | 8 | SHA1 (patch-ab) = 40911979a540645db2a17861328292add22898d3 | |
9 | SHA1 (patch-ae) = 8792f7877c0a29701d7d0643e93360813ed7db0f | 9 | SHA1 (patch-ae) = 8792f7877c0a29701d7d0643e93360813ed7db0f | |
10 | SHA1 (patch-ai) = d93147f4e8a2026a1892c3cbd14a929d81e0e635 | 10 | SHA1 (patch-ai) = d93147f4e8a2026a1892c3cbd14a929d81e0e635 | |
11 | SHA1 (patch-aj) = e9996135629085c44867b9264648b2b507e91f98 | 11 | SHA1 (patch-aj) = e9996135629085c44867b9264648b2b507e91f98 | |
12 | SHA1 (patch-ak) = 31982e692cabf25be31bd1758fe1aeb1a4787629 | 12 | SHA1 (patch-ak) = 31982e692cabf25be31bd1758fe1aeb1a4787629 | |
13 | SHA1 (patch-al) = caabc33ee51922d97edac19346ad9d80fabb164b | 13 | SHA1 (patch-al) = caabc33ee51922d97edac19346ad9d80fabb164b | |
14 | SHA1 (patch-am) = a721e311e7dde7938de0e9546a7892bfd104ebd1 | 14 | SHA1 (patch-am) = a721e311e7dde7938de0e9546a7892bfd104ebd1 | |
15 | SHA1 (patch-an) = bda6c65148410a6c9a13afd8ad34f93e33731552 | 15 | SHA1 (patch-an) = bda6c65148410a6c9a13afd8ad34f93e33731552 | |
16 | SHA1 (patch-ao) = 91eecb62351aff720447eb48ea85aae70b62f9b6 | 16 | SHA1 (patch-ao) = 91eecb62351aff720447eb48ea85aae70b62f9b6 | |
17 | SHA1 (patch-ap) = 4176e95502754206d6840ce228c61371df947650 | 17 | SHA1 (patch-ap) = 4176e95502754206d6840ce228c61371df947650 | |
18 | SHA1 (patch-screen.c) = 1c6a8af8cbdc66723649a9f6659e963150805b32 | 18 | SHA1 (patch-screen.c) = 631d7681ef440cbab6d3795dfbb23c1e944deb7d | |
19 | SHA1 (patch-socket.c) = 09683cee3685a5c6d625e86aa97f6a09f4280b56 | 19 | SHA1 (patch-socket.c) = 09683cee3685a5c6d625e86aa97f6a09f4280b56 | |
20 | SHA1 (patch-tty.sh) = 93b1fe856cf16640295cb822d60118dbd3734602 | 20 | SHA1 (patch-tty.sh) = 93b1fe856cf16640295cb822d60118dbd3734602 |
@@ -1,32 +1,34 @@ | @@ -1,32 +1,34 @@ | |||
1 | $NetBSD: patch-screen.c,v 1.2 2017/01/25 00:18:02 maya Exp $ | 1 | $NetBSD: patch-screen.c,v 1.3 2017/01/25 01:17:16 maya Exp $ | |
2 | 2 | |||
3 | Use standard headers. | 3 | Use standard headers. | |
4 | Don't open user-supplied paths as root. | 4 | Don't open user-supplied paths as root. | |
5 | 5 | |||
6 | --- screen.c.orig 2017-01-17 19:28:29.000000000 +0000 | 6 | --- screen.c.orig 2017-01-17 19:28:29.000000000 +0000 | |
7 | +++ screen.c | 7 | +++ screen.c | |
8 | @@ -88,6 +88,8 @@ | 8 | @@ -88,6 +88,8 @@ | |
9 | # include <langinfo.h> | 9 | # include <langinfo.h> | |
10 | #endif | 10 | #endif | |
11 | 11 | |||
12 | +#include <limits.h> | 12 | +#include <limits.h> | |
13 | + | 13 | + | |
14 | #include "screen.h" | 14 | #include "screen.h" | |
15 | #ifdef HAVE_BRAILLE | 15 | #ifdef HAVE_BRAILLE | |
16 | # include "braille.h" | 16 | # include "braille.h" | |
17 | @@ -674,11 +676,15 @@ int main(int ac, char** av) | 17 | @@ -674,11 +676,17 @@ int main(int ac, char** av) | |
18 | if (strlen(screenlogfile) > PATH_MAX) | 18 | if (strlen(screenlogfile) > PATH_MAX) | |
19 | Panic(0, "-L: logfile name too long. (max. %d char)", PATH_MAX); | 19 | Panic(0, "-L: logfile name too long. (max. %d char)", PATH_MAX); | |
20 | 20 | |||
21 | + if (seteuid(getuid()) < 0) | 21 | + int issetugid = geteuid() == 0; | |
22 | + | |||
23 | + if (issetugid && seteuid(getuid()) < 0) | |||
22 | + Panic(0, "setuid 1"); | 24 | + Panic(0, "setuid 1"); | |
23 | FILE *w_check; | 25 | FILE *w_check; | |
24 | if ((w_check = fopen(screenlogfile, "w")) == NULL) | 26 | if ((w_check = fopen(screenlogfile, "w")) == NULL) | |
25 | Panic(0, "-L: logfile name access problem"); | 27 | Panic(0, "-L: logfile name access problem"); | |
26 | else | 28 | else | |
27 | fclose(w_check); | 29 | fclose(w_check); | |
28 | + if (seteuid(0) < 0) | 30 | + if (issetugid && seteuid(0) < 0) | |
29 | + Panic(0, "setuid 2"); | 31 | + Panic(0, "setuid 2"); | |
30 | } | 32 | } | |
31 | nwin_options.Lflag = 1; | 33 | nwin_options.Lflag = 1; | |
32 | break; | 34 | break; |