Fri, 03 Aug 2012 20:11:53 +0200
Neutralize buggy code causing OpenPKG to have 'fatal problems' in
spite of correct installation, configuration, and operation. An
administrator suffering from this failure is even unable to
uninstall the flawed software.
1 Index: include/ac/fdset.h
2 --- include/ac/fdset.h.orig 2011-01-05 00:49:56.000000000 +0100
3 +++ include/ac/fdset.h 2011-02-12 10:17:43.000000000 +0100
4 @@ -22,6 +22,13 @@
5 #ifndef _AC_FDSET_H
6 #define _AC_FDSET_H
8 +#if defined(HAVE_SYS_TYPES_H)
9 +#include <sys/types.h>
10 +#endif
11 +#if defined(HAVE_SYS_SELECT_H)
12 +#include <sys/select.h>
13 +#endif
14 +
15 #if !defined( OPENLDAP_FD_SETSIZE ) && !defined( FD_SETSIZE )
16 # define OPENLDAP_FD_SETSIZE 4096
17 #endif
18 Index: include/ldap_int_thread.h
19 --- include/ldap_int_thread.h.orig 2011-01-06 19:43:20.000000000 +0100
20 +++ include/ldap_int_thread.h 2011-02-12 10:17:43.000000000 +0100
21 @@ -110,6 +110,7 @@
22 * *
23 ***********************************/
25 +#define _POSIX_PTHREAD_SEMANTICS
26 #define PTH_SYSCALL_SOFT 1
27 #include <pth.h>
29 Index: libraries/libldap_r/tpool.c
30 --- libraries/libldap_r/tpool.c.orig 2011-01-05 00:50:08.000000000 +0100
31 +++ libraries/libldap_r/tpool.c 2011-02-12 10:17:43.000000000 +0100
32 @@ -968,6 +968,6 @@
33 {
34 ldap_int_thread_userctx_t *ctx = vctx;
36 - return ctx->ltu_id;
37 + return ctx != NULL ? ctx->ltu_id : 0;
38 }
39 #endif /* LDAP_THREAD_HAVE_TPOOL */
40 Index: servers/slapd/back-perl/config.c
41 --- servers/slapd/back-perl/config.c.orig 2011-01-05 00:50:41.000000000 +0100
42 +++ servers/slapd/back-perl/config.c 2011-02-12 10:17:43.000000000 +0100
43 @@ -49,6 +49,9 @@
44 }
46 #ifdef PERL_IS_5_6
47 + if (argc > 2)
48 + snprintf( eval_str, EVAL_BUF_SIZE, "require \"%s\";", argv[2] );
49 + else
50 snprintf( eval_str, EVAL_BUF_SIZE, "use %s;", argv[1] );
51 eval_pv( eval_str, 0 );