Commit a7214eb7 authored by Natanael Copa's avatar Natanael Copa

main/linux-grsec: upgrade grsecurity patch to 200908090749

This should fix #122
parent 6740d61d
......@@ -4,7 +4,7 @@ _flavor=grsec
pkgname=linux-${_flavor}
pkgver=2.6.30.4
_kernver=2.6.30
pkgrel=2
pkgrel=3
pkgdesc="Linux kernel with grsecurity"
url=http://grsecurity.net
depends="mkinitfs"
......@@ -13,7 +13,7 @@ _config=${config:-kernelconfig}
install="$pkgname.post-install $pkgname.post-upgrade"
source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2
grsecurity-2.1.14-2.6.30.4-200908051916.patch
grsecurity-2.1.14-2.6.30.4-200908090749.patch
linux-nbma-mroute-v4-2.6.30.diff
net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch
$_config
......@@ -113,7 +113,7 @@ dev() {
md5sums="7a80058a6382e5108cdb5554d1609615 linux-2.6.30.tar.bz2
d0fc44b54ba5953140b3f2aa9a1f2580 patch-2.6.30.4.bz2
9a0d6d6ce67289e24c6e3ef4441b6388 grsecurity-2.1.14-2.6.30.4-200908051916.patch
78f3778d96c03006ba0b4c96ed885cd6 grsecurity-2.1.14-2.6.30.4-200908090749.patch
7420c0b1095335990313656b114e1379 linux-nbma-mroute-v4-2.6.30.diff
ca05fd252783b82e01610e775cf56498 net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch
60adb085be0ab268c0f27279ae2b2bab kernelconfig
......
......@@ -7086,7 +7086,7 @@ diff -urNp linux-2.6.30.4/arch/x86/include/asm/uaccess_64.h linux-2.6.30.4/arch/
#endif /* _ASM_X86_UACCESS_64_H */
diff -urNp linux-2.6.30.4/arch/x86/include/asm/uaccess.h linux-2.6.30.4/arch/x86/include/asm/uaccess.h
--- linux-2.6.30.4/arch/x86/include/asm/uaccess.h 2009-07-30 20:32:40.364705510 -0400
+++ linux-2.6.30.4/arch/x86/include/asm/uaccess.h 2009-07-30 20:32:47.926577259 -0400
+++ linux-2.6.30.4/arch/x86/include/asm/uaccess.h 2009-08-09 07:48:47.926451868 -0400
@@ -8,8 +8,10 @@
#include <linux/thread_info.h>
#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
#define segment_eq(a, b) ((a).seg == (b).seg)
@@ -187,9 +194,12 @@ extern int __get_user_bad(void);
@@ -183,13 +190,21 @@ extern int __get_user_bad(void);
asm volatile("call __put_user_" #size : "=a" (__ret_pu) \
: "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
-
+#ifdef CONFIG_X86_32
+#define _ASM_LOAD_USER_DS(ds) "movw %w" #ds ",%%ds\n"
+#define _ASM_LOAD_KERNEL_DS "pushl %%ss; popl %%ds\n"
+#else
+#define _ASM_LOAD_USER_DS(ds)
+#define _ASM_LOAD_KERNEL_DS
+#endif
#ifdef CONFIG_X86_32
#define __put_user_asm_u64(x, addr, err, errret) \
- asm volatile("1: movl %%eax,0(%2)\n" \
- "2: movl %%edx,4(%2)\n" \
+ asm volatile(" movw %w5,%%ds\n" \
+ asm volatile(_ASM_LOAD_USER_DS(5) \
+ "1: movl %%eax,%%ds:0(%2)\n" \
+ "2: movl %%edx,%%ds:4(%2)\n" \
"3:\n" \
+ " pushl %%ss\n" \
+ " popl %%ds\n" \
+ _ASM_LOAD_KERNEL_DS \
".section .fixup,\"ax\"\n" \
"4: movl %3,%0\n" \
" jmp 3b\n" \
@@ -197,7 +207,8 @@ extern int __get_user_bad(void);
@@ -197,15 +212,18 @@ extern int __get_user_bad(void);
_ASM_EXTABLE(1b, 4b) \
_ASM_EXTABLE(2b, 4b) \
: "=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
+ "r"(__USER_DS))
#define __put_user_asm_ex_u64(x, addr) \
asm volatile("1: movl %%eax,0(%1)\n" \
@@ -373,6 +384,22 @@ do { \
} \
- asm volatile("1: movl %%eax,0(%1)\n" \
- "2: movl %%edx,4(%1)\n" \
+ asm volatile(_ASM_LOAD_USER_DS(2) \
+ "1: movl %%eax,%%ds:0(%1)\n" \
+ "2: movl %%edx,%%ds:4(%1)\n" \
"3:\n" \
+ _ASM_LOAD_KERNEL_DS \
_ASM_EXTABLE(1b, 2b - 1b) \
_ASM_EXTABLE(2b, 3b - 2b) \
- : : "A" (x), "r" (addr))
+ : : "A" (x), "r" (addr), "r"(__USER_DS))
#define __put_user_x8(x, ptr, __ret_pu) \
asm volatile("call __put_user_8" : "=a" (__ret_pu) \
@@ -374,16 +392,18 @@ do { \
} while (0)
+#ifdef CONFIG_X86_32
+#define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \
+ asm volatile(" movw %w5,%%ds\n" \
+ "1: mov"itype" %%ds:%2,%"rtype"1\n" \
+ "2:\n" \
+ " pushl %%ss\n" \
+ " popl %%ds\n" \
+ ".section .fixup,\"ax\"\n" \
+ "3: movl %3,%0\n" \
+ " xor"itype" %"rtype"1,%"rtype"1\n" \
+ " jmp 2b\n" \
+ ".previous\n" \
+ _ASM_EXTABLE(1b, 3b) \
+ : "=r" (err), ltype (x) \
+ : "m" (__m(addr)), "i" (errret), "0" (err), "r"(__USER_DS))
+#else
#define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \
asm volatile("1: mov"itype" %2,%"rtype"1\n" \
- asm volatile("1: mov"itype" %2,%"rtype"1\n" \
+ asm volatile(_ASM_LOAD_USER_DS(5) \
+ "1: mov"itype" %%ds:%2,%"rtype"1\n" \
"2:\n" \
@@ -384,6 +411,7 @@ do { \
+ _ASM_LOAD_KERNEL_DS \
".section .fixup,\"ax\"\n" \
"3: mov %3,%0\n" \
" xor"itype" %"rtype"1,%"rtype"1\n" \
" jmp 2b\n" \
".previous\n" \
_ASM_EXTABLE(1b, 3b) \
: "=r" (err), ltype(x) \
: "m" (__m(addr)), "i" (errret), "0" (err))
+#endif
- : "=r" (err), ltype(x) \
- : "m" (__m(addr)), "i" (errret), "0" (err))
+ : "=r" (err), ltype (x) \
+ : "m" (__m(addr)), "i" (errret), "0" (err), "r"(__USER_DS))
#define __get_user_size_ex(x, ptr, size) \
do { \
@@ -406,11 +434,22 @@ do { \
} \
@@ -407,10 +427,12 @@ do { \
} while (0)
+#ifdef CONFIG_X86_32
+#define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
+ asm volatile(" movw %w2,%%ds\n" \
+ "1: mov"itype" %%ds:%1,%"rtype"0\n" \
+ "2:\n" \
+ " pushl %%ss\n" \
+ " popl %%ds\n" \
+ _ASM_EXTABLE(1b, 2b - 1b) \
+ : ltype(x) : "m" (__m(addr)), "r"(__USER_DS))
+#else
#define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
asm volatile("1: mov"itype" %1,%"rtype"0\n" \
- asm volatile("1: mov"itype" %1,%"rtype"0\n" \
+ asm volatile(_ASM_LOAD_USER_DS(2) \
+ "1: mov"itype" %%ds:%1,%"rtype"0\n" \
"2:\n" \
+ _ASM_LOAD_KERNEL_DS \
_ASM_EXTABLE(1b, 2b - 1b) \
: ltype(x) : "m" (__m(addr)))
+#endif
- : ltype(x) : "m" (__m(addr)))
+ : ltype(x) : "m" (__m(addr)), "r"(__USER_DS))
#define __put_user_nocheck(x, ptr, size) \
({ \
@@ -437,6 +476,22 @@ struct __large_struct { unsigned long bu
* we do not write to any memory gcc knows about, so there are no
@@ -438,21 +460,26 @@ struct __large_struct { unsigned long bu
* aliasing issues.
*/
+#ifdef CONFIG_X86_32
+#define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \
+ asm volatile(" movw %w5,%%ds\n" \
+ "1: mov"itype" %"rtype"1,%%ds:%2\n" \
+ "2:\n" \
+ " pushl %%ss\n" \
+ " popl %%ds\n" \
+ ".section .fixup,\"ax\"\n" \
+ "3: movl %3,%0\n" \
+ " jmp 2b\n" \
+ ".previous\n" \
+ _ASM_EXTABLE(1b, 3b) \
+ : "=r"(err) \
+ : ltype (x), "m" (__m(addr)), "i" (errret), "0" (err),\
+ "r"(__USER_DS))
+#else
#define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \
asm volatile("1: mov"itype" %"rtype"1,%2\n" \
- asm volatile("1: mov"itype" %"rtype"1,%2\n" \
+ asm volatile(_ASM_LOAD_USER_DS(5) \
+ "1: mov"itype" %"rtype"1,%%ds:%2\n" \
"2:\n" \
@@ -447,12 +502,24 @@ struct __large_struct { unsigned long bu
+ _ASM_LOAD_KERNEL_DS \
".section .fixup,\"ax\"\n" \
"3: mov %3,%0\n" \
" jmp 2b\n" \
".previous\n" \
_ASM_EXTABLE(1b, 3b) \
: "=r"(err) \
: ltype(x), "m" (__m(addr)), "i" (errret), "0" (err))
+#endif
- : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err))
+ : ltype (x), "m" (__m(addr)), "i" (errret), "0" (err),\
+ "r"(__USER_DS))
+#ifdef CONFIG_X86_32
+#define __put_user_asm_ex(x, addr, itype, rtype, ltype) \
+ asm volatile(" movw %w2,%%ds\n" \
+ "1: mov"itype" %"rtype"0,%%ds:%1\n" \
+ "2:\n" \
+ " pushl %%ss\n" \
+ " popl %%ds\n" \
+ _ASM_EXTABLE(1b, 2b - 1b) \
+ : : ltype(x), "m" (__m(addr)), "r"(__USER_DS))
+#else
#define __put_user_asm_ex(x, addr, itype, rtype, ltype) \
asm volatile("1: mov"itype" %"rtype"0,%1\n" \
- asm volatile("1: mov"itype" %"rtype"0,%1\n" \
+ asm volatile(_ASM_LOAD_USER_DS(2) \
+ "1: mov"itype" %"rtype"0,%%ds:%1\n" \
"2:\n" \
+ _ASM_LOAD_KERNEL_DS \
_ASM_EXTABLE(1b, 2b - 1b) \
: : ltype(x), "m" (__m(addr)))
+#endif
- : : ltype(x), "m" (__m(addr)))
+ : : ltype(x), "m" (__m(addr)), "r"(__USER_DS))
/*
* uaccess_try and catch
@@ -567,6 +634,7 @@ extern struct movsl_mask {
@@ -567,6 +594,7 @@ extern struct movsl_mask {
#define ARCH_HAS_NOCACHE_UACCESS 1
......@@ -18854,6 +18843,30 @@ diff -urNp linux-2.6.30.4/drivers/media/video/stk-webcam.c linux-2.6.30.4/driver
.open = stk_v4l_vm_open,
.close = stk_v4l_vm_close
};
diff -urNp linux-2.6.30.4/drivers/media/video/usbvideo/konicawc.c linux-2.6.30.4/drivers/media/video/usbvideo/konicawc.c
--- linux-2.6.30.4/drivers/media/video/usbvideo/konicawc.c 2009-07-24 17:47:51.000000000 -0400
+++ linux-2.6.30.4/drivers/media/video/usbvideo/konicawc.c 2009-08-09 07:48:48.178565450 -0400
@@ -225,7 +225,7 @@ static void konicawc_register_input(stru
int error;
usb_make_path(dev, cam->input_physname, sizeof(cam->input_physname));
- strncat(cam->input_physname, "/input0", sizeof(cam->input_physname));
+ strlcat(cam->input_physname, "/input0", sizeof(cam->input_physname));
cam->input = input_dev = input_allocate_device();
if (!input_dev) {
diff -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
--- linux-2.6.30.4/drivers/media/video/usbvideo/quickcam_messenger.c 2009-07-24 17:47:51.000000000 -0400
+++ linux-2.6.30.4/drivers/media/video/usbvideo/quickcam_messenger.c 2009-08-09 07:48:48.199403940 -0400
@@ -89,7 +89,7 @@ static void qcm_register_input(struct qc
int error;
usb_make_path(dev, cam->input_physname, sizeof(cam->input_physname));
- strncat(cam->input_physname, "/input0", sizeof(cam->input_physname));
+ strlcat(cam->input_physname, "/input0", sizeof(cam->input_physname));
cam->input = input_dev = input_allocate_device();
if (!input_dev) {
diff -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
--- linux-2.6.30.4/drivers/media/video/uvc/uvc_v4l2.c 2009-07-24 17:47:51.000000000 -0400
+++ 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.
.open = zoran_vm_open,
.close = zoran_vm_close,
};
diff -urNp linux-2.6.30.4/drivers/message/i2o/i2o_proc.c linux-2.6.30.4/drivers/message/i2o/i2o_proc.c
--- linux-2.6.30.4/drivers/message/i2o/i2o_proc.c 2009-07-24 17:47:51.000000000 -0400
+++ linux-2.6.30.4/drivers/message/i2o/i2o_proc.c 2009-08-09 07:48:48.246416282 -0400
@@ -259,13 +259,6 @@ static char *scsi_devices[] = {
"Array Controller Device"
};
-static char *chtostr(u8 * chars, int n)
-{
- char tmp[256];
- tmp[0] = 0;
- return strncat(tmp, (char *)chars, n);
-}
-
static int i2o_report_query_status(struct seq_file *seq, int block_status,
char *group)
{
@@ -842,8 +835,7 @@ static int i2o_seq_show_ddm_table(struct
seq_printf(seq, "%-#7x", ddm_table.i2o_vendor_id);
seq_printf(seq, "%-#8x", ddm_table.module_id);
- seq_printf(seq, "%-29s",
- chtostr(ddm_table.module_name_version, 28));
+ seq_printf(seq, "%-.28s", ddm_table.module_name_version);
seq_printf(seq, "%9d ", ddm_table.data_size);
seq_printf(seq, "%8d", ddm_table.code_size);
@@ -944,8 +936,8 @@ static int i2o_seq_show_drivers_stored(s
seq_printf(seq, "%-#7x", dst->i2o_vendor_id);
seq_printf(seq, "%-#8x", dst->module_id);
- seq_printf(seq, "%-29s", chtostr(dst->module_name_version, 28));
- seq_printf(seq, "%-9s", chtostr(dst->date, 8));
+ seq_printf(seq, "%-.28s", dst->module_name_version);
+ seq_printf(seq, "%-.8s", dst->date);
seq_printf(seq, "%8d ", dst->module_size);
seq_printf(seq, "%8d ", dst->mpb_size);
seq_printf(seq, "0x%04x", dst->module_flags);
@@ -1276,14 +1268,10 @@ static int i2o_seq_show_dev_identity(str
seq_printf(seq, "Device Class : %s\n", i2o_get_class_name(work16[0]));
seq_printf(seq, "Owner TID : %0#5x\n", work16[2]);
seq_printf(seq, "Parent TID : %0#5x\n", work16[3]);
- seq_printf(seq, "Vendor info : %s\n",
- chtostr((u8 *) (work32 + 2), 16));
- seq_printf(seq, "Product info : %s\n",
- chtostr((u8 *) (work32 + 6), 16));
- seq_printf(seq, "Description : %s\n",
- chtostr((u8 *) (work32 + 10), 16));
- seq_printf(seq, "Product rev. : %s\n",
- chtostr((u8 *) (work32 + 14), 8));
+ seq_printf(seq, "Vendor info : %.16s\n", (u8 *) (work32 + 2));
+ seq_printf(seq, "Product info : %.16s\n", (u8 *) (work32 + 6));
+ seq_printf(seq, "Description : %.16s\n", (u8 *) (work32 + 10));
+ seq_printf(seq, "Product rev. : %.8s\n", (u8 *) (work32 + 14));
seq_printf(seq, "Serial number : ");
print_serial_number(seq, (u8 *) (work32 + 16),
@@ -1328,10 +1316,8 @@ static int i2o_seq_show_ddm_identity(str
}
seq_printf(seq, "Registering DDM TID : 0x%03x\n", result.ddm_tid);
- seq_printf(seq, "Module name : %s\n",
- chtostr(result.module_name, 24));
- seq_printf(seq, "Module revision : %s\n",
- chtostr(result.module_rev, 8));
+ seq_printf(seq, "Module name : %.24s\n", result.module_name);
+ seq_printf(seq, "Module revision : %.8s\n", result.module_rev);
seq_printf(seq, "Serial number : ");
print_serial_number(seq, result.serial_number, sizeof(result) - 36);
@@ -1362,14 +1348,10 @@ static int i2o_seq_show_uinfo(struct seq
return 0;
}
- seq_printf(seq, "Device name : %s\n",
- chtostr(result.device_name, 64));
- seq_printf(seq, "Service name : %s\n",
- chtostr(result.service_name, 64));
- seq_printf(seq, "Physical name : %s\n",
- chtostr(result.physical_location, 64));
- seq_printf(seq, "Instance number : %s\n",
- chtostr(result.instance_number, 4));
+ seq_printf(seq, "Device name : %.64s\n", result.device_name);
+ seq_printf(seq, "Service name : %.64s\n", result.service_name);
+ seq_printf(seq, "Physical name : %.64s\n", result.physical_location);
+ seq_printf(seq, "Instance number : %.4s\n", result.instance_number);
return 0;
}
diff -urNp linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c
--- linux-2.6.30.4/drivers/misc/ibmasm/ibmasmfs.c 2009-07-24 17:47:51.000000000 -0400
+++ 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
};
MODULE_DEVICE_TABLE(pci, yenta_table);
diff -urNp linux-2.6.30.4/drivers/platform/x86/wmi.c linux-2.6.30.4/drivers/platform/x86/wmi.c
--- linux-2.6.30.4/drivers/platform/x86/wmi.c 2009-07-24 17:47:51.000000000 -0400
+++ linux-2.6.30.4/drivers/platform/x86/wmi.c 2009-08-09 07:48:48.278373587 -0400
@@ -270,7 +270,7 @@ u32 method_id, const struct acpi_buffer
acpi_status status;
struct acpi_object_list input;
union acpi_object params[3];
- char method[4] = "WM";
+ char method[5] = "WM";
if (!find_guid(guid_string, &wblock))
return AE_ERROR;
@@ -328,8 +328,8 @@ struct acpi_buffer *out)
acpi_status status, wc_status = AE_ERROR;
struct acpi_object_list input, wc_input;
union acpi_object wc_params[1], wq_params[1];
- char method[4];
- char wc_method[4] = "WC";
+ char method[5];
+ char wc_method[5] = "WC";
if (!guid_string || !out)
return AE_BAD_PARAMETER;
@@ -410,7 +410,7 @@ const struct acpi_buffer *in)
acpi_handle handle;
struct acpi_object_list input;
union acpi_object params[2];
- char method[4] = "WS";
+ char method[5] = "WS";
if (!guid_string || !in)
return AE_BAD_DATA;
diff -urNp linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c
--- linux-2.6.30.4/drivers/pnp/pnpbios/bioscalls.c 2009-07-24 17:47:51.000000000 -0400
+++ 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/
#define S16_C(x) x
diff -urNp linux-2.6.30.4/include/asm-generic/vmlinux.lds.h linux-2.6.30.4/include/asm-generic/vmlinux.lds.h
--- linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-07-24 17:47:51.000000000 -0400
+++ linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-08-05 19:08:00.537007471 -0400
+++ linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-08-09 07:48:48.045905474 -0400
@@ -121,6 +121,7 @@
.rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
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
*(__vermagic) /* Kernel version magic */ \
*(__markers_strings) /* Markers: strings */ \
*(__tracepoints_strings)/* Tracepoints: strings */ \
@@ -478,8 +479,9 @@
@@ -468,22 +469,24 @@
* section in the linker script will go there too. @phdr should have
* a leading colon.
*
- * Note that this macros defines __per_cpu_load as an absolute symbol.
+ * Note that this macros defines per_cpu_load as an absolute symbol.
* If there is no need to put the percpu section at a predetermined
* address, use PERCPU().
*/
#define PERCPU_VADDR(vaddr, phdr) \
- VMLINUX_SYMBOL(__per_cpu_load) = .; \
- .data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \
+ per_cpu_load = .; \
+ .data.percpu vaddr : AT(VMLINUX_SYMBOL(per_cpu_load) \
- LOAD_OFFSET) { \
+ VMLINUX_SYMBOL(__per_cpu_load) = . + per_cpu_load; \
VMLINUX_SYMBOL(__per_cpu_start) = .; \
*(.data.percpu.first) \
- *(.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
*(.data.percpu.shared_aligned) \
VMLINUX_SYMBOL(__per_cpu_end) = .; \
} phdr \
- . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data.percpu);
+ . = VMLINUX_SYMBOL(per_cpu_load) + SIZEOF(.data.percpu);
/**
* PERCPU - define output section for percpu area, simple version
diff -urNp linux-2.6.30.4/include/drm/drm_pciids.h linux-2.6.30.4/include/drm/drm_pciids.h
--- linux-2.6.30.4/include/drm/drm_pciids.h 2009-07-24 17:47:51.000000000 -0400
+++ 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
.open = snd_usX2Y_hwdep_pcm_vm_open,
.close = snd_usX2Y_hwdep_pcm_vm_close,
.fault = snd_usX2Y_hwdep_pcm_vm_fault,
diff -urNp linux-2.6.30.4/usr/gen_init_cpio.c linux-2.6.30.4/usr/gen_init_cpio.c
--- linux-2.6.30.4/usr/gen_init_cpio.c 2009-07-24 17:47:51.000000000 -0400
+++ linux-2.6.30.4/usr/gen_init_cpio.c 2009-08-09 07:48:48.304466902 -0400
@@ -383,9 +383,10 @@ static char *cpio_replace_env(char *new_
*env_var = *expanded = '\0';
strncat(env_var, start + 2, end - start - 2);
strncat(expanded, new_location, start - new_location);
- strncat(expanded, getenv(env_var), PATH_MAX);
- strncat(expanded, end + 1, PATH_MAX);
+ strncat(expanded, getenv(env_var), PATH_MAX - strlen(expanded));
+ strncat(expanded, end + 1, PATH_MAX - strlen(expanded));
strncpy(new_location, expanded, PATH_MAX);
+ new_location[PATH_MAX] = 0;
} else
break;
}
diff -urNp linux-2.6.30.4/virt/kvm/kvm_main.c linux-2.6.30.4/virt/kvm/kvm_main.c
--- linux-2.6.30.4/virt/kvm/kvm_main.c 2009-07-24 17:47:51.000000000 -0400
+++ linux-2.6.30.4/virt/kvm/kvm_main.c 2009-07-30 12:42:02.581987537 -0400
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment