aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-08-09 14:12:06 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-08-09 14:12:06 +0000
commita7214eb7d00074b09fa5b6a4f56a769dca17ca76 (patch)
tree591308e5eec1f65f280a8c34db3c294c383f9fac
parent6740d61d3640a7e253d6772364ca83dd82a78a57 (diff)
downloadalpine_aports-a7214eb7d00074b09fa5b6a4f56a769dca17ca76.tar.bz2
alpine_aports-a7214eb7d00074b09fa5b6a4f56a769dca17ca76.tar.xz
alpine_aports-a7214eb7d00074b09fa5b6a4f56a769dca17ca76.zip
main/linux-grsec: upgrade grsecurity patch to 200908090749
This should fix #122
-rw-r--r--main/linux-grsec/APKBUILD6
-rw-r--r--main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908090749.patch (renamed from main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908051916.patch)335
2 files changed, 255 insertions, 86 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index 08e386e29b..625989df1b 100644
--- a/main/linux-grsec/APKBUILD
+++ b/main/linux-grsec/APKBUILD
@@ -4,7 +4,7 @@ _flavor=grsec
4pkgname=linux-${_flavor} 4pkgname=linux-${_flavor}
5pkgver=2.6.30.4 5pkgver=2.6.30.4
6_kernver=2.6.30 6_kernver=2.6.30
7pkgrel=2 7pkgrel=3
8pkgdesc="Linux kernel with grsecurity" 8pkgdesc="Linux kernel with grsecurity"
9url=http://grsecurity.net 9url=http://grsecurity.net
10depends="mkinitfs" 10depends="mkinitfs"
@@ -13,7 +13,7 @@ _config=${config:-kernelconfig}
13install="$pkgname.post-install $pkgname.post-upgrade" 13install="$pkgname.post-install $pkgname.post-upgrade"
14source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 14source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2
15 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2 15 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2
16 grsecurity-2.1.14-2.6.30.4-200908051916.patch 16 grsecurity-2.1.14-2.6.30.4-200908090749.patch
17 linux-nbma-mroute-v4-2.6.30.diff 17 linux-nbma-mroute-v4-2.6.30.diff
18 net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch 18 net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch
19 $_config 19 $_config
@@ -113,7 +113,7 @@ dev() {
113 113
114md5sums="7a80058a6382e5108cdb5554d1609615 linux-2.6.30.tar.bz2 114md5sums="7a80058a6382e5108cdb5554d1609615 linux-2.6.30.tar.bz2
115d0fc44b54ba5953140b3f2aa9a1f2580 patch-2.6.30.4.bz2 115d0fc44b54ba5953140b3f2aa9a1f2580 patch-2.6.30.4.bz2
1169a0d6d6ce67289e24c6e3ef4441b6388 grsecurity-2.1.14-2.6.30.4-200908051916.patch 11678f3778d96c03006ba0b4c96ed885cd6 grsecurity-2.1.14-2.6.30.4-200908090749.patch
1177420c0b1095335990313656b114e1379 linux-nbma-mroute-v4-2.6.30.diff 1177420c0b1095335990313656b114e1379 linux-nbma-mroute-v4-2.6.30.diff
118ca05fd252783b82e01610e775cf56498 net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch 118ca05fd252783b82e01610e775cf56498 net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch
11960adb085be0ab268c0f27279ae2b2bab kernelconfig 11960adb085be0ab268c0f27279ae2b2bab kernelconfig
diff --git a/main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908051916.patch b/main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908090749.patch
index 5d0902c211..3fff0bbb81 100644
--- a/main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908051916.patch
+++ b/main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908090749.patch
@@ -7086,7 +7086,7 @@ diff -urNp linux-2.6.30.4/arch/x86/include/asm/uaccess_64.h linux-2.6.30.4/arch/
7086 #endif /* _ASM_X86_UACCESS_64_H */ 7086 #endif /* _ASM_X86_UACCESS_64_H */
7087diff -urNp linux-2.6.30.4/arch/x86/include/asm/uaccess.h linux-2.6.30.4/arch/x86/include/asm/uaccess.h 7087diff -urNp linux-2.6.30.4/arch/x86/include/asm/uaccess.h linux-2.6.30.4/arch/x86/include/asm/uaccess.h
7088--- linux-2.6.30.4/arch/x86/include/asm/uaccess.h 2009-07-30 20:32:40.364705510 -0400 7088--- linux-2.6.30.4/arch/x86/include/asm/uaccess.h 2009-07-30 20:32:40.364705510 -0400
7089+++ linux-2.6.30.4/arch/x86/include/asm/uaccess.h 2009-07-30 20:32:47.926577259 -0400 7089+++ linux-2.6.30.4/arch/x86/include/asm/uaccess.h 2009-08-09 07:48:47.926451868 -0400
7090@@ -8,8 +8,10 @@ 7090@@ -8,8 +8,10 @@
7091 #include <linux/thread_info.h> 7091 #include <linux/thread_info.h>
7092 #include <linux/prefetch.h> 7092 #include <linux/prefetch.h>
@@ -7111,22 +7111,32 @@ diff -urNp linux-2.6.30.4/arch/x86/include/asm/uaccess.h linux-2.6.30.4/arch/x86
7111 7111
7112 #define segment_eq(a, b) ((a).seg == (b).seg) 7112 #define segment_eq(a, b) ((a).seg == (b).seg)
7113 7113
7114@@ -187,9 +194,12 @@ extern int __get_user_bad(void); 7114@@ -183,13 +190,21 @@ extern int __get_user_bad(void);
7115 asm volatile("call __put_user_" #size : "=a" (__ret_pu) \
7116 : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
7117
7118-
7119+#ifdef CONFIG_X86_32
7120+#define _ASM_LOAD_USER_DS(ds) "movw %w" #ds ",%%ds\n"
7121+#define _ASM_LOAD_KERNEL_DS "pushl %%ss; popl %%ds\n"
7122+#else
7123+#define _ASM_LOAD_USER_DS(ds)
7124+#define _ASM_LOAD_KERNEL_DS
7125+#endif
7115 7126
7116 #ifdef CONFIG_X86_32 7127 #ifdef CONFIG_X86_32
7117 #define __put_user_asm_u64(x, addr, err, errret) \ 7128 #define __put_user_asm_u64(x, addr, err, errret) \
7118- asm volatile("1: movl %%eax,0(%2)\n" \ 7129- asm volatile("1: movl %%eax,0(%2)\n" \
7119- "2: movl %%edx,4(%2)\n" \ 7130- "2: movl %%edx,4(%2)\n" \
7120+ asm volatile(" movw %w5,%%ds\n" \ 7131+ asm volatile(_ASM_LOAD_USER_DS(5) \
7121+ "1: movl %%eax,%%ds:0(%2)\n" \ 7132+ "1: movl %%eax,%%ds:0(%2)\n" \
7122+ "2: movl %%edx,%%ds:4(%2)\n" \ 7133+ "2: movl %%edx,%%ds:4(%2)\n" \
7123 "3:\n" \ 7134 "3:\n" \
7124+ " pushl %%ss\n" \ 7135+ _ASM_LOAD_KERNEL_DS \
7125+ " popl %%ds\n" \
7126 ".section .fixup,\"ax\"\n" \ 7136 ".section .fixup,\"ax\"\n" \
7127 "4: movl %3,%0\n" \ 7137 "4: movl %3,%0\n" \
7128 " jmp 3b\n" \ 7138 " jmp 3b\n" \
7129@@ -197,7 +207,8 @@ extern int __get_user_bad(void); 7139@@ -197,15 +212,18 @@ extern int __get_user_bad(void);
7130 _ASM_EXTABLE(1b, 4b) \ 7140 _ASM_EXTABLE(1b, 4b) \
7131 _ASM_EXTABLE(2b, 4b) \ 7141 _ASM_EXTABLE(2b, 4b) \
7132 : "=r" (err) \ 7142 : "=r" (err) \
@@ -7135,110 +7145,89 @@ diff -urNp linux-2.6.30.4/arch/x86/include/asm/uaccess.h linux-2.6.30.4/arch/x86
7135+ "r"(__USER_DS)) 7145+ "r"(__USER_DS))
7136 7146
7137 #define __put_user_asm_ex_u64(x, addr) \ 7147 #define __put_user_asm_ex_u64(x, addr) \
7138 asm volatile("1: movl %%eax,0(%1)\n" \ 7148- asm volatile("1: movl %%eax,0(%1)\n" \
7139@@ -373,6 +384,22 @@ do { \ 7149- "2: movl %%edx,4(%1)\n" \
7140 } \ 7150+ asm volatile(_ASM_LOAD_USER_DS(2) \
7151+ "1: movl %%eax,%%ds:0(%1)\n" \
7152+ "2: movl %%edx,%%ds:4(%1)\n" \
7153 "3:\n" \
7154+ _ASM_LOAD_KERNEL_DS \
7155 _ASM_EXTABLE(1b, 2b - 1b) \
7156 _ASM_EXTABLE(2b, 3b - 2b) \
7157- : : "A" (x), "r" (addr))
7158+ : : "A" (x), "r" (addr), "r"(__USER_DS))
7159
7160 #define __put_user_x8(x, ptr, __ret_pu) \
7161 asm volatile("call __put_user_8" : "=a" (__ret_pu) \
7162@@ -374,16 +392,18 @@ do { \
7141 } while (0) 7163 } while (0)
7142 7164
7143+#ifdef CONFIG_X86_32
7144+#define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \
7145+ asm volatile(" movw %w5,%%ds\n" \
7146+ "1: mov"itype" %%ds:%2,%"rtype"1\n" \
7147+ "2:\n" \
7148+ " pushl %%ss\n" \
7149+ " popl %%ds\n" \
7150+ ".section .fixup,\"ax\"\n" \
7151+ "3: movl %3,%0\n" \
7152+ " xor"itype" %"rtype"1,%"rtype"1\n" \
7153+ " jmp 2b\n" \
7154+ ".previous\n" \
7155+ _ASM_EXTABLE(1b, 3b) \
7156+ : "=r" (err), ltype (x) \
7157+ : "m" (__m(addr)), "i" (errret), "0" (err), "r"(__USER_DS))
7158+#else
7159 #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \ 7165 #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \
7160 asm volatile("1: mov"itype" %2,%"rtype"1\n" \ 7166- asm volatile("1: mov"itype" %2,%"rtype"1\n" \
7167+ asm volatile(_ASM_LOAD_USER_DS(5) \
7168+ "1: mov"itype" %%ds:%2,%"rtype"1\n" \
7161 "2:\n" \ 7169 "2:\n" \
7162@@ -384,6 +411,7 @@ do { \ 7170+ _ASM_LOAD_KERNEL_DS \
7171 ".section .fixup,\"ax\"\n" \
7172 "3: mov %3,%0\n" \
7173 " xor"itype" %"rtype"1,%"rtype"1\n" \
7174 " jmp 2b\n" \
7175 ".previous\n" \
7163 _ASM_EXTABLE(1b, 3b) \ 7176 _ASM_EXTABLE(1b, 3b) \
7164 : "=r" (err), ltype(x) \ 7177- : "=r" (err), ltype(x) \
7165 : "m" (__m(addr)), "i" (errret), "0" (err)) 7178- : "m" (__m(addr)), "i" (errret), "0" (err))
7166+#endif 7179+ : "=r" (err), ltype (x) \
7180+ : "m" (__m(addr)), "i" (errret), "0" (err), "r"(__USER_DS))
7167 7181
7168 #define __get_user_size_ex(x, ptr, size) \ 7182 #define __get_user_size_ex(x, ptr, size) \
7169 do { \ 7183 do { \
7170@@ -406,11 +434,22 @@ do { \ 7184@@ -407,10 +427,12 @@ do { \
7171 } \
7172 } while (0) 7185 } while (0)
7173 7186
7174+#ifdef CONFIG_X86_32
7175+#define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
7176+ asm volatile(" movw %w2,%%ds\n" \
7177+ "1: mov"itype" %%ds:%1,%"rtype"0\n" \
7178+ "2:\n" \
7179+ " pushl %%ss\n" \
7180+ " popl %%ds\n" \
7181+ _ASM_EXTABLE(1b, 2b - 1b) \
7182+ : ltype(x) : "m" (__m(addr)), "r"(__USER_DS))
7183+#else
7184 #define __get_user_asm_ex(x, addr, itype, rtype, ltype) \ 7187 #define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
7185 asm volatile("1: mov"itype" %1,%"rtype"0\n" \ 7188- asm volatile("1: mov"itype" %1,%"rtype"0\n" \
7189+ asm volatile(_ASM_LOAD_USER_DS(2) \
7190+ "1: mov"itype" %%ds:%1,%"rtype"0\n" \
7186 "2:\n" \ 7191 "2:\n" \
7192+ _ASM_LOAD_KERNEL_DS \
7187 _ASM_EXTABLE(1b, 2b - 1b) \ 7193 _ASM_EXTABLE(1b, 2b - 1b) \
7188 : ltype(x) : "m" (__m(addr))) 7194- : ltype(x) : "m" (__m(addr)))
7189+#endif 7195+ : ltype(x) : "m" (__m(addr)), "r"(__USER_DS))
7190 7196
7191 #define __put_user_nocheck(x, ptr, size) \ 7197 #define __put_user_nocheck(x, ptr, size) \
7192 ({ \ 7198 ({ \
7193@@ -437,6 +476,22 @@ struct __large_struct { unsigned long bu 7199@@ -438,21 +460,26 @@ struct __large_struct { unsigned long bu
7194 * we do not write to any memory gcc knows about, so there are no
7195 * aliasing issues. 7200 * aliasing issues.
7196 */ 7201 */
7197+#ifdef CONFIG_X86_32
7198+#define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \
7199+ asm volatile(" movw %w5,%%ds\n" \
7200+ "1: mov"itype" %"rtype"1,%%ds:%2\n" \
7201+ "2:\n" \
7202+ " pushl %%ss\n" \
7203+ " popl %%ds\n" \
7204+ ".section .fixup,\"ax\"\n" \
7205+ "3: movl %3,%0\n" \
7206+ " jmp 2b\n" \
7207+ ".previous\n" \
7208+ _ASM_EXTABLE(1b, 3b) \
7209+ : "=r"(err) \
7210+ : ltype (x), "m" (__m(addr)), "i" (errret), "0" (err),\
7211+ "r"(__USER_DS))
7212+#else
7213 #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \ 7202 #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \
7214 asm volatile("1: mov"itype" %"rtype"1,%2\n" \ 7203- asm volatile("1: mov"itype" %"rtype"1,%2\n" \
7204+ asm volatile(_ASM_LOAD_USER_DS(5) \
7205+ "1: mov"itype" %"rtype"1,%%ds:%2\n" \
7215 "2:\n" \ 7206 "2:\n" \
7216@@ -447,12 +502,24 @@ struct __large_struct { unsigned long bu 7207+ _ASM_LOAD_KERNEL_DS \
7208 ".section .fixup,\"ax\"\n" \
7209 "3: mov %3,%0\n" \
7210 " jmp 2b\n" \
7211 ".previous\n" \
7217 _ASM_EXTABLE(1b, 3b) \ 7212 _ASM_EXTABLE(1b, 3b) \
7218 : "=r"(err) \ 7213 : "=r"(err) \
7219 : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err)) 7214- : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err))
7220+#endif 7215+ : ltype (x), "m" (__m(addr)), "i" (errret), "0" (err),\
7216+ "r"(__USER_DS))
7221 7217
7222+#ifdef CONFIG_X86_32
7223+#define __put_user_asm_ex(x, addr, itype, rtype, ltype) \
7224+ asm volatile(" movw %w2,%%ds\n" \
7225+ "1: mov"itype" %"rtype"0,%%ds:%1\n" \
7226+ "2:\n" \
7227+ " pushl %%ss\n" \
7228+ " popl %%ds\n" \
7229+ _ASM_EXTABLE(1b, 2b - 1b) \
7230+ : : ltype(x), "m" (__m(addr)), "r"(__USER_DS))
7231+#else
7232 #define __put_user_asm_ex(x, addr, itype, rtype, ltype) \ 7218 #define __put_user_asm_ex(x, addr, itype, rtype, ltype) \
7233 asm volatile("1: mov"itype" %"rtype"0,%1\n" \ 7219- asm volatile("1: mov"itype" %"rtype"0,%1\n" \
7220+ asm volatile(_ASM_LOAD_USER_DS(2) \
7221+ "1: mov"itype" %"rtype"0,%%ds:%1\n" \
7234 "2:\n" \ 7222 "2:\n" \
7223+ _ASM_LOAD_KERNEL_DS \
7235 _ASM_EXTABLE(1b, 2b - 1b) \ 7224 _ASM_EXTABLE(1b, 2b - 1b) \
7236 : : ltype(x), "m" (__m(addr))) 7225- : : ltype(x), "m" (__m(addr)))
7237+#endif 7226+ : : ltype(x), "m" (__m(addr)), "r"(__USER_DS))
7238 7227
7239 /* 7228 /*
7240 * uaccess_try and catch 7229 * uaccess_try and catch
7241@@ -567,6 +634,7 @@ extern struct movsl_mask { 7230@@ -567,6 +594,7 @@ extern struct movsl_mask {
7242 7231
7243 #define ARCH_HAS_NOCACHE_UACCESS 1 7232 #define ARCH_HAS_NOCACHE_UACCESS 1
7244 7233
@@ -18854,6 +18843,30 @@ diff -urNp linux-2.6.30.4/drivers/media/video/stk-webcam.c linux-2.6.30.4/driver
18854 .open = stk_v4l_vm_open, 18843 .open = stk_v4l_vm_open,
18855 .close = stk_v4l_vm_close 18844 .close = stk_v4l_vm_close
18856 }; 18845 };
18846diff -urNp linux-2.6.30.4/drivers/media/video/usbvideo/konicawc.c linux-2.6.30.4/drivers/media/video/usbvideo/konicawc.c
18847--- linux-2.6.30.4/drivers/media/video/usbvideo/konicawc.c 2009-07-24 17:47:51.000000000 -0400
18848+++ linux-2.6.30.4/drivers/media/video/usbvideo/konicawc.c 2009-08-09 07:48:48.178565450 -0400
18849@@ -225,7 +225,7 @@ static void konicawc_register_input(stru
18850 int error;
18851
18852 usb_make_path(dev, cam->input_physname, sizeof(cam->input_physname));
18853- strncat(cam->input_physname, "/input0", sizeof(cam->input_physname));
18854+ strlcat(cam->input_physname, "/input0", sizeof(cam->input_physname));
18855
18856 cam->input = input_dev = input_allocate_device();
18857 if (!input_dev) {
18858diff -urNp linux-2.6.30.4/drivers/media/video/usbvideo/quickcam_messenger.c linux-2.6.30.4/drivers/media/video/usbvideo/quickcam_messenger.c
18859--- linux-2.6.30.4/drivers/media/video/usbvideo/quickcam_messenger.c 2009-07-24 17:47:51.000000000 -0400
18860+++ linux-2.6.30.4/drivers/media/video/usbvideo/quickcam_messenger.c 2009-08-09 07:48:48.199403940 -0400
18861@@ -89,7 +89,7 @@ static void qcm_register_input(struct qc
18862 int error;
18863
18864 usb_make_path(dev, cam->input_physname, sizeof(cam->input_physname));
18865- strncat(cam->input_physname, "/input0", sizeof(cam->input_physname));
18866+ strlcat(cam->input_physname, "/input0", sizeof(cam->input_physname));
18867
18868 cam->input = input_dev = input_allocate_device();
18869 if (!input_dev) {
18857diff -urNp linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c 18870diff -urNp linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c
18858--- linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c 2009-07-24 17:47:51.000000000 -0400 18871--- linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c 2009-07-24 17:47:51.000000000 -0400
18859+++ linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c 2009-07-30 09:48:10.034661447 -0400 18872+++ linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c 2009-07-30 09:48:10.034661447 -0400
@@ -18914,6 +18927,95 @@ diff -urNp linux-2.6.30.4/drivers/media/video/zoran/zoran_driver.c linux-2.6.30.
18914 .open = zoran_vm_open, 18927 .open = zoran_vm_open,
18915 .close = zoran_vm_close, 18928 .close = zoran_vm_close,
18916 }; 18929 };
18930diff -urNp linux-2.6.30.4/drivers/message/i2o/i2o_proc.c linux-2.6.30.4/drivers/message/i2o/i2o_proc.c
18931--- linux-2.6.30.4/drivers/message/i2o/i2o_proc.c 2009-07-24 17:47:51.000000000 -0400
18932+++ linux-2.6.30.4/drivers/message/i2o/i2o_proc.c 2009-08-09 07:48:48.246416282 -0400
18933@@ -259,13 +259,6 @@ static char *scsi_devices[] = {
18934 "Array Controller Device"
18935 };
18936
18937-static char *chtostr(u8 * chars, int n)
18938-{
18939- char tmp[256];
18940- tmp[0] = 0;
18941- return strncat(tmp, (char *)chars, n);
18942-}
18943-
18944 static int i2o_report_query_status(struct seq_file *seq, int block_status,
18945 char *group)
18946 {
18947@@ -842,8 +835,7 @@ static int i2o_seq_show_ddm_table(struct
18948
18949 seq_printf(seq, "%-#7x", ddm_table.i2o_vendor_id);
18950 seq_printf(seq, "%-#8x", ddm_table.module_id);
18951- seq_printf(seq, "%-29s",
18952- chtostr(ddm_table.module_name_version, 28));
18953+ seq_printf(seq, "%-.28s", ddm_table.module_name_version);
18954 seq_printf(seq, "%9d ", ddm_table.data_size);
18955 seq_printf(seq, "%8d", ddm_table.code_size);
18956
18957@@ -944,8 +936,8 @@ static int i2o_seq_show_drivers_stored(s
18958
18959 seq_printf(seq, "%-#7x", dst->i2o_vendor_id);
18960 seq_printf(seq, "%-#8x", dst->module_id);
18961- seq_printf(seq, "%-29s", chtostr(dst->module_name_version, 28));
18962- seq_printf(seq, "%-9s", chtostr(dst->date, 8));
18963+ seq_printf(seq, "%-.28s", dst->module_name_version);
18964+ seq_printf(seq, "%-.8s", dst->date);
18965 seq_printf(seq, "%8d ", dst->module_size);
18966 seq_printf(seq, "%8d ", dst->mpb_size);
18967 seq_printf(seq, "0x%04x", dst->module_flags);
18968@@ -1276,14 +1268,10 @@ static int i2o_seq_show_dev_identity(str
18969 seq_printf(seq, "Device Class : %s\n", i2o_get_class_name(work16[0]));
18970 seq_printf(seq, "Owner TID : %0#5x\n", work16[2]);
18971 seq_printf(seq, "Parent TID : %0#5x\n", work16[3]);
18972- seq_printf(seq, "Vendor info : %s\n",
18973- chtostr((u8 *) (work32 + 2), 16));
18974- seq_printf(seq, "Product info : %s\n",
18975- chtostr((u8 *) (work32 + 6), 16));
18976- seq_printf(seq, "Description : %s\n",
18977- chtostr((u8 *) (work32 + 10), 16));
18978- seq_printf(seq, "Product rev. : %s\n",
18979- chtostr((u8 *) (work32 + 14), 8));
18980+ seq_printf(seq, "Vendor info : %.16s\n", (u8 *) (work32 + 2));
18981+ seq_printf(seq, "Product info : %.16s\n", (u8 *) (work32 + 6));
18982+ seq_printf(seq, "Description : %.16s\n", (u8 *) (work32 + 10));
18983+ seq_printf(seq, "Product rev. : %.8s\n", (u8 *) (work32 + 14));
18984
18985 seq_printf(seq, "Serial number : ");
18986 print_serial_number(seq, (u8 *) (work32 + 16),
18987@@ -1328,10 +1316,8 @@ static int i2o_seq_show_ddm_identity(str
18988 }
18989
18990 seq_printf(seq, "Registering DDM TID : 0x%03x\n", result.ddm_tid);
18991- seq_printf(seq, "Module name : %s\n",
18992- chtostr(result.module_name, 24));
18993- seq_printf(seq, "Module revision : %s\n",
18994- chtostr(result.module_rev, 8));
18995+ seq_printf(seq, "Module name : %.24s\n", result.module_name);
18996+ seq_printf(seq, "Module revision : %.8s\n", result.module_rev);
18997
18998 seq_printf(seq, "Serial number : ");
18999 print_serial_number(seq, result.serial_number, sizeof(result) - 36);
19000@@ -1362,14 +1348,10 @@ static int i2o_seq_show_uinfo(struct seq
19001 return 0;
19002 }
19003
19004- seq_printf(seq, "Device name : %s\n",
19005- chtostr(result.device_name, 64));
19006- seq_printf(seq, "Service name : %s\n",
19007- chtostr(result.service_name, 64));
19008- seq_printf(seq, "Physical name : %s\n",
19009- chtostr(result.physical_location, 64));
19010- seq_printf(seq, "Instance number : %s\n",
19011- chtostr(result.instance_number, 4));
19012+ seq_printf(seq, "Device name : %.64s\n", result.device_name);
19013+ seq_printf(seq, "Service name : %.64s\n", result.service_name);
19014+ seq_printf(seq, "Physical name : %.64s\n", result.physical_location);
19015+ seq_printf(seq, "Instance number : %.4s\n", result.instance_number);
19016
19017 return 0;
19018 }
18917diff -urNp linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c 19019diff -urNp linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c
18918--- linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c 2009-07-24 17:47:51.000000000 -0400 19020--- linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c 2009-07-24 17:47:51.000000000 -0400
18919+++ linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c 2009-07-30 09:48:10.036598829 -0400 19021+++ linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c 2009-07-30 09:48:10.036598829 -0400
@@ -19256,6 +19358,38 @@ diff -urNp linux-2.6.30.4/drivers/pcmcia/yenta_socket.c linux-2.6.30.4/drivers/p
19256 }; 19358 };
19257 MODULE_DEVICE_TABLE(pci, yenta_table); 19359 MODULE_DEVICE_TABLE(pci, yenta_table);
19258 19360
19361diff -urNp linux-2.6.30.4/drivers/platform/x86/wmi.c linux-2.6.30.4/drivers/platform/x86/wmi.c
19362--- linux-2.6.30.4/drivers/platform/x86/wmi.c 2009-07-24 17:47:51.000000000 -0400
19363+++ linux-2.6.30.4/drivers/platform/x86/wmi.c 2009-08-09 07:48:48.278373587 -0400
19364@@ -270,7 +270,7 @@ u32 method_id, const struct acpi_buffer
19365 acpi_status status;
19366 struct acpi_object_list input;
19367 union acpi_object params[3];
19368- char method[4] = "WM";
19369+ char method[5] = "WM";
19370
19371 if (!find_guid(guid_string, &wblock))
19372 return AE_ERROR;
19373@@ -328,8 +328,8 @@ struct acpi_buffer *out)
19374 acpi_status status, wc_status = AE_ERROR;
19375 struct acpi_object_list input, wc_input;
19376 union acpi_object wc_params[1], wq_params[1];
19377- char method[4];
19378- char wc_method[4] = "WC";
19379+ char method[5];
19380+ char wc_method[5] = "WC";
19381
19382 if (!guid_string || !out)
19383 return AE_BAD_PARAMETER;
19384@@ -410,7 +410,7 @@ const struct acpi_buffer *in)
19385 acpi_handle handle;
19386 struct acpi_object_list input;
19387 union acpi_object params[2];
19388- char method[4] = "WS";
19389+ char method[5] = "WS";
19390
19391 if (!guid_string || !in)
19392 return AE_BAD_DATA;
19259diff -urNp linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c 19393diff -urNp linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c
19260--- linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c 2009-07-24 17:47:51.000000000 -0400 19394--- linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c 2009-07-24 17:47:51.000000000 -0400
19261+++ linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c 2009-07-30 09:48:10.045642944 -0400 19395+++ linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c 2009-07-30 09:48:10.045642944 -0400
@@ -34794,7 +34928,7 @@ diff -urNp linux-2.6.30.4/include/asm-generic/int-ll64.h linux-2.6.30.4/include/
34794 #define S16_C(x) x 34928 #define S16_C(x) x
34795diff -urNp linux-2.6.30.4/include/asm-generic/vmlinux.lds.h linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 34929diff -urNp linux-2.6.30.4/include/asm-generic/vmlinux.lds.h linux-2.6.30.4/include/asm-generic/vmlinux.lds.h
34796--- linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-07-24 17:47:51.000000000 -0400 34930--- linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-07-24 17:47:51.000000000 -0400
34797+++ linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-08-05 19:08:00.537007471 -0400 34931+++ linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-08-09 07:48:48.045905474 -0400
34798@@ -121,6 +121,7 @@ 34932@@ -121,6 +121,7 @@
34799 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ 34933 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
34800 VMLINUX_SYMBOL(__start_rodata) = .; \ 34934 VMLINUX_SYMBOL(__start_rodata) = .; \
@@ -34803,8 +34937,22 @@ diff -urNp linux-2.6.30.4/include/asm-generic/vmlinux.lds.h linux-2.6.30.4/inclu
34803 *(__vermagic) /* Kernel version magic */ \ 34937 *(__vermagic) /* Kernel version magic */ \
34804 *(__markers_strings) /* Markers: strings */ \ 34938 *(__markers_strings) /* Markers: strings */ \
34805 *(__tracepoints_strings)/* Tracepoints: strings */ \ 34939 *(__tracepoints_strings)/* Tracepoints: strings */ \
34806@@ -478,8 +479,9 @@ 34940@@ -468,22 +469,24 @@
34941 * section in the linker script will go there too. @phdr should have
34942 * a leading colon.
34943 *
34944- * Note that this macros defines __per_cpu_load as an absolute symbol.
34945+ * Note that this macros defines per_cpu_load as an absolute symbol.
34946 * If there is no need to put the percpu section at a predetermined
34947 * address, use PERCPU().
34948 */
34949 #define PERCPU_VADDR(vaddr, phdr) \
34950- VMLINUX_SYMBOL(__per_cpu_load) = .; \
34951- .data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \
34952+ per_cpu_load = .; \
34953+ .data.percpu vaddr : AT(VMLINUX_SYMBOL(per_cpu_load) \
34807 - LOAD_OFFSET) { \ 34954 - LOAD_OFFSET) { \
34955+ VMLINUX_SYMBOL(__per_cpu_load) = . + per_cpu_load; \
34808 VMLINUX_SYMBOL(__per_cpu_start) = .; \ 34956 VMLINUX_SYMBOL(__per_cpu_start) = .; \
34809 *(.data.percpu.first) \ 34957 *(.data.percpu.first) \
34810- *(.data.percpu.page_aligned) \ 34958- *(.data.percpu.page_aligned) \
@@ -34814,6 +34962,11 @@ diff -urNp linux-2.6.30.4/include/asm-generic/vmlinux.lds.h linux-2.6.30.4/inclu
34814 *(.data.percpu.shared_aligned) \ 34962 *(.data.percpu.shared_aligned) \
34815 VMLINUX_SYMBOL(__per_cpu_end) = .; \ 34963 VMLINUX_SYMBOL(__per_cpu_end) = .; \
34816 } phdr \ 34964 } phdr \
34965- . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data.percpu);
34966+ . = VMLINUX_SYMBOL(per_cpu_load) + SIZEOF(.data.percpu);
34967
34968 /**
34969 * PERCPU - define output section for percpu area, simple version
34817diff -urNp linux-2.6.30.4/include/drm/drm_pciids.h linux-2.6.30.4/include/drm/drm_pciids.h 34970diff -urNp linux-2.6.30.4/include/drm/drm_pciids.h linux-2.6.30.4/include/drm/drm_pciids.h
34818--- linux-2.6.30.4/include/drm/drm_pciids.h 2009-07-24 17:47:51.000000000 -0400 34971--- linux-2.6.30.4/include/drm/drm_pciids.h 2009-07-24 17:47:51.000000000 -0400
34819+++ linux-2.6.30.4/include/drm/drm_pciids.h 2009-07-30 09:48:10.106233963 -0400 34972+++ linux-2.6.30.4/include/drm/drm_pciids.h 2009-07-30 09:48:10.106233963 -0400
@@ -44559,6 +44712,22 @@ diff -urNp linux-2.6.30.4/sound/usb/usx2y/usx2yhwdeppcm.c linux-2.6.30.4/sound/u
44559 .open = snd_usX2Y_hwdep_pcm_vm_open, 44712 .open = snd_usX2Y_hwdep_pcm_vm_open,
44560 .close = snd_usX2Y_hwdep_pcm_vm_close, 44713 .close = snd_usX2Y_hwdep_pcm_vm_close,
44561 .fault = snd_usX2Y_hwdep_pcm_vm_fault, 44714 .fault = snd_usX2Y_hwdep_pcm_vm_fault,
44715diff -urNp linux-2.6.30.4/usr/gen_init_cpio.c linux-2.6.30.4/usr/gen_init_cpio.c
44716--- linux-2.6.30.4/usr/gen_init_cpio.c 2009-07-24 17:47:51.000000000 -0400
44717+++ linux-2.6.30.4/usr/gen_init_cpio.c 2009-08-09 07:48:48.304466902 -0400
44718@@ -383,9 +383,10 @@ static char *cpio_replace_env(char *new_
44719 *env_var = *expanded = '\0';
44720 strncat(env_var, start + 2, end - start - 2);
44721 strncat(expanded, new_location, start - new_location);
44722- strncat(expanded, getenv(env_var), PATH_MAX);
44723- strncat(expanded, end + 1, PATH_MAX);
44724+ strncat(expanded, getenv(env_var), PATH_MAX - strlen(expanded));
44725+ strncat(expanded, end + 1, PATH_MAX - strlen(expanded));
44726 strncpy(new_location, expanded, PATH_MAX);
44727+ new_location[PATH_MAX] = 0;
44728 } else
44729 break;
44730 }
44562diff -urNp linux-2.6.30.4/virt/kvm/kvm_main.c linux-2.6.30.4/virt/kvm/kvm_main.c 44731diff -urNp linux-2.6.30.4/virt/kvm/kvm_main.c linux-2.6.30.4/virt/kvm/kvm_main.c
44563--- linux-2.6.30.4/virt/kvm/kvm_main.c 2009-07-24 17:47:51.000000000 -0400 44732--- linux-2.6.30.4/virt/kvm/kvm_main.c 2009-07-24 17:47:51.000000000 -0400
44564+++ linux-2.6.30.4/virt/kvm/kvm_main.c 2009-07-30 12:42:02.581987537 -0400 44733+++ linux-2.6.30.4/virt/kvm/kvm_main.c 2009-07-30 12:42:02.581987537 -0400