]> git.pld-linux.org Git - packages/syslog-ng.git/blame - cap_syslog-vserver-workaround.patch
- 3.3.5
[packages/syslog-ng.git] / cap_syslog-vserver-workaround.patch
CommitLineData
3a4f861c
AM
1diff -ur syslog-ng-3.2.4.org/lib/gprocess.c syslog-ng-3.2.4/lib/gprocess.c
2--- syslog-ng-3.2.4.org/lib/gprocess.c 2011-09-10 19:11:42.848926449 +0200
3+++ syslog-ng-3.2.4/lib/gprocess.c 2011-09-10 19:21:08.665586449 +0200
4@@ -305,10 +305,23 @@
5 return;
6 }
7
8+#define LINUX_VERSION(x,y,z) (0x10000*(x) + 0x100*(y) + z)
9+
10+static int
11+get_kernel_version(void) {
12+ static struct utsname uts;
13+ int x = 0, y = 0, z = 0;
14+ if ((uname(&uts) == -1) || (sscanf(uts.release, "%u.%u.%u", &x, &y, &z) < 2)) {
15+ msg_error("Unable to retrieve kernel version.", NULL);
16+ return -1;
17+ }
18+ return LINUX_VERSION(x, y, z);
19+}
20+
21 gboolean
22 g_process_check_cap_syslog(void)
23 {
24- int ret;
25+ int ret, kver;
26
27 if (have_capsyslog)
28 return TRUE;
29@@ -320,6 +333,10 @@
30 if (ret == -1)
31 return FALSE;
32
33+ kver = get_kernel_version();
34+ if (kver > 0 && kver < LINUX_VERSION(2,6,38))
35+ return FALSE;
36+
37 have_capsyslog = TRUE;
38 return TRUE;
39 }
3a4f861c
AM
40diff -ur syslog-ng-3.2.4.org/lib/gprocess.h syslog-ng-3.2.4/lib/gprocess.h
41--- syslog-ng-3.2.4.org/lib/gprocess.h 2011-09-10 19:11:42.848926449 +0200
42+++ syslog-ng-3.2.4/lib/gprocess.h 2011-09-10 19:15:44.334619870 +0200
43@@ -28,6 +28,7 @@
44 #include "syslog-ng.h"
45
46 #include <sys/types.h>
47+#include <sys/utsname.h>
48
49 #if ENABLE_LINUX_CAPS
50 # include <sys/capability.h>
This page took 0.035611 seconds and 4 git commands to generate.