Mon, 20 Apr 2009 19:22:00 +0200
Change unfortunate but partly useful overreaching security tradeoff.
The principle of allocating each running process an individual system
user and group can have security benefits, however maintining a plethora
of users, groups, processes, file modes, file permissions, and even
nonportable file ACLs on a host serving from a hundred processes has
some security disadvantages. This tradeoff is even worse for systems
like OpenPKG which benefit from administration transparency through the
use of minimal system intrusion and only three usage privilege levels.
1 Index: Makefile.in
2 --- Makefile.in.orig 2007-10-10 13:00:22 +0200
3 +++ Makefile.in 2007-10-17 08:40:12 +0200
4 @@ -485,7 +485,7 @@
5 target_alias = @target_alias@
6 ACLOCAL_AMFLAGS = -I m4
7 EXTRA_DIST = ChangeLog.1 PORTS
8 -SUBDIRS = doc lib rmt src scripts po tests
9 +SUBDIRS = doc lib src
10 all: config.h
11 $(MAKE) $(AM_MAKEFLAGS) all-recursive
13 Index: lib/argp-help.c
14 --- lib/argp-help.c.orig 2007-09-28 15:11:36 +0200
15 +++ lib/argp-help.c 2007-10-17 08:40:12 +0200
16 @@ -570,8 +570,7 @@
17 return val;
18 }
20 -static inline int
21 -__attribute__ ((always_inline))
22 +static int
23 hol_entry_long_iterate (const struct hol_entry *entry,
24 int (*func)(const struct argp_option *opt,
25 const struct argp_option *real,
26 Index: src/compare.c
27 --- src/compare.c.orig 2007-08-26 10:56:55 +0200
28 +++ src/compare.c 2007-10-17 08:40:12 +0200
29 @@ -278,7 +278,7 @@
30 size_t len = strlen (current_stat_info.link_name);
31 char *linkbuf = alloca (len + 1);
33 - int status = readlink (current_stat_info.file_name, linkbuf, len + 1);
34 + int status = readlink (current_stat_info.file_name, linkbuf, len);
36 if (status < 0)
37 {
38 Index: src/create.c
39 --- src/create.c.orig 2007-10-05 19:46:49 +0200
40 +++ src/create.c 2007-10-17 08:40:12 +0200
41 @@ -1696,7 +1696,7 @@
42 if (linklen != st->stat.st_size || linklen + 1 == 0)
43 xalloc_die ();
44 buffer = (char *) alloca (linklen + 1);
45 - size = readlink (p, buffer, linklen + 1);
46 + size = readlink (p, buffer, linklen);
47 if (size < 0)
48 {
49 readlink_diag (p);
50 Index: src/incremen.c
51 --- src/incremen.c.orig 2007-10-01 23:19:55 +0200
52 +++ src/incremen.c 2007-10-17 08:40:12 +0200
53 @@ -526,6 +526,7 @@
54 children = CHANGED_CHILDREN;
55 but changed to: */
56 free (name_buffer);
57 + if (dirp)
58 free (dirp);
59 return NULL;
60 }
61 Index: src/tar.c
62 --- src/tar.c.orig 2007-09-26 23:36:58 +0200
63 +++ src/tar.c 2007-10-17 08:40:12 +0200
64 @@ -20,6 +20,7 @@
65 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
67 #include <system.h>
68 +#include <locale.h>
70 #include <fnmatch.h>
71 #include <argp.h>
72 Index: src/utf8.c
73 --- src/utf8.c.orig 2007-06-27 15:30:32 +0200
74 +++ src/utf8.c 2007-10-17 08:40:12 +0200
75 @@ -22,6 +22,9 @@
76 #include "common.h"
77 #ifdef HAVE_ICONV_H
78 # include <iconv.h>
79 +#else
80 +# define iconv_t void *
81 +# define ICONV_CONST const
82 #endif
84 #ifndef ICONV_CONST
85 Index: src/xheader.c
86 --- src/xheader.c.orig 2007-06-27 15:30:32 +0200
87 +++ src/xheader.c 2007-10-17 08:40:12 +0200
88 @@ -27,6 +27,10 @@
90 #include <fnmatch.h>
92 +#ifndef SIZE_MAX
93 +# define SIZE_MAX ((size_t) -1)
94 +#endif
95 +
96 static bool xheader_protected_pattern_p (char const *pattern);
97 static bool xheader_protected_keyword_p (char const *keyword);
98 static void xheader_set_single_keyword (char *) __attribute__ ((noreturn));
99 Index: lib/strerror.c
100 --- lib/strerror.c.orig 2007-09-28 15:11:37 +0200
101 +++ lib/strerror.c 2007-10-18 00:55:28 +0200
102 @@ -23,6 +23,7 @@
104 # include <string.h>
105 # include <stdio.h>
106 +# include <limits.h>
108 # undef strerror