packages (GRSECURITY_RAW): kernel/kernel-grsec_full.patch http://grsecurity...

arekm arekm at pld-linux.org
Wed Nov 3 07:44:16 CET 2010


Author: arekm                        Date: Wed Nov  3 06:44:16 2010 GMT
Module: packages                      Tag: GRSECURITY_RAW
---- Log message:
http://grsecurity.net/~spender/grsecurity-2.2.0-2.6.35.8-201011022021.patch

---- Files affected:
packages/kernel:
   kernel-grsec_full.patch (1.3.2.44 -> 1.3.2.45) 

---- Diffs:

================================================================
Index: packages/kernel/kernel-grsec_full.patch
diff -u packages/kernel/kernel-grsec_full.patch:1.3.2.44 packages/kernel/kernel-grsec_full.patch:1.3.2.45
--- packages/kernel/kernel-grsec_full.patch:1.3.2.44	Mon Nov  1 06:45:56 2010
+++ packages/kernel/kernel-grsec_full.patch	Wed Nov  3 07:44:01 2010
@@ -11753,7 +11753,7 @@
  	/* Reserve INITRD */
 diff -urNp linux-2.6.35.8/arch/x86/kernel/head_32.S linux-2.6.35.8/arch/x86/kernel/head_32.S
 --- linux-2.6.35.8/arch/x86/kernel/head_32.S	2010-10-31 17:13:58.000000000 -0400
-+++ linux-2.6.35.8/arch/x86/kernel/head_32.S	2010-10-31 17:21:20.000000000 -0400
++++ linux-2.6.35.8/arch/x86/kernel/head_32.S	2010-11-02 19:22:48.000000000 -0400
 @@ -25,6 +25,12 @@
  /* Physical address */
  #define pa(X) ((X) - __PAGE_OFFSET)
@@ -12045,7 +12045,7 @@
  ENTRY(swapper_pg_dir)
  	.fill 1024,4,0
  #endif
-+
++.section .swapper_pg_fixmap,"a", at progbits
  swapper_pg_fixmap:
  	.fill 1024,4,0
  #ifdef CONFIG_X86_TRAMPOLINE
@@ -14567,7 +14567,7 @@
  	local_irq_save(flags);
 diff -urNp linux-2.6.35.8/arch/x86/kernel/vmlinux.lds.S linux-2.6.35.8/arch/x86/kernel/vmlinux.lds.S
 --- linux-2.6.35.8/arch/x86/kernel/vmlinux.lds.S	2010-08-26 19:47:12.000000000 -0400
-+++ linux-2.6.35.8/arch/x86/kernel/vmlinux.lds.S	2010-09-17 20:12:09.000000000 -0400
++++ linux-2.6.35.8/arch/x86/kernel/vmlinux.lds.S	2010-11-02 19:23:16.000000000 -0400
 @@ -26,6 +26,13 @@
  #include <asm/page_types.h>
  #include <asm/cache.h>
@@ -14653,7 +14653,7 @@
  		HEAD_TEXT
  #ifdef CONFIG_X86_32
  		. = ALIGN(PAGE_SIZE);
-@@ -108,13 +130,50 @@ SECTIONS
+@@ -108,13 +130,52 @@ SECTIONS
  		IRQENTRY_TEXT
  		*(.fixup)
  		*(.gnu.warning)
@@ -14695,8 +14695,10 @@
 +		*(.idt)
 +		. = ALIGN(PAGE_SIZE);
 +		*(.empty_zero_page)
++		*(.swapper_pg_fixmap)
 +		*(.swapper_pg_pmd)
 +		*(.swapper_pg_dir)
++		*(.trampoline_pg_dir)
 +	} :rodata
 +#endif
 +
@@ -14708,7 +14710,7 @@
  
  	X64_ALIGN_DEBUG_RODATA_BEGIN
  	RO_DATA(PAGE_SIZE)
-@@ -122,16 +181,20 @@ SECTIONS
+@@ -122,16 +183,20 @@ SECTIONS
  
  	/* Data */
  	.data : AT(ADDR(.data) - LOAD_OFFSET) {
@@ -14732,7 +14734,7 @@
  
  		PAGE_ALIGNED_DATA(PAGE_SIZE)
  
-@@ -194,12 +257,6 @@ SECTIONS
+@@ -194,12 +259,6 @@ SECTIONS
  	}
  	vgetcpu_mode = VVIRT(.vgetcpu_mode);
  
@@ -14745,7 +14747,7 @@
  	.vsyscall_3 ADDR(.vsyscall_0) + 3072: AT(VLOAD(.vsyscall_3)) {
  		*(.vsyscall_3)
  	}
-@@ -215,12 +272,19 @@ SECTIONS
+@@ -215,12 +274,19 @@ SECTIONS
  #endif /* CONFIG_X86_64 */
  
  	/* Init code and data - will be freed after init */
@@ -14768,7 +14770,7 @@
  	/*
  	 * percpu offsets are zero-based on SMP.  PERCPU_VADDR() changes the
  	 * output PHDR, so the next output section - .init.text - should
-@@ -229,12 +293,27 @@ SECTIONS
+@@ -229,12 +295,27 @@ SECTIONS
  	PERCPU_VADDR(0, :percpu)
  #endif
  
@@ -14801,7 +14803,7 @@
  
  	.x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
  		__x86_cpu_dev_start = .;
-@@ -260,19 +339,11 @@ SECTIONS
+@@ -260,19 +341,11 @@ SECTIONS
  		*(.altinstr_replacement)
  	}
  
@@ -14822,7 +14824,7 @@
  	PERCPU(PAGE_SIZE)
  #endif
  
-@@ -291,16 +362,10 @@ SECTIONS
+@@ -291,16 +364,10 @@ SECTIONS
  	.smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
  		__smp_locks = .;
  		*(.smp_locks)
@@ -14840,7 +14842,7 @@
  	/* BSS */
  	. = ALIGN(PAGE_SIZE);
  	.bss : AT(ADDR(.bss) - LOAD_OFFSET) {
-@@ -316,6 +381,7 @@ SECTIONS
+@@ -316,6 +383,7 @@ SECTIONS
  		__brk_base = .;
  		. += 64 * 1024;		/* 64k alignment slop space */
  		*(.brk_reservation)	/* areas brk users have reserved */
@@ -14848,7 +14850,7 @@
  		__brk_limit = .;
  	}
  
-@@ -342,13 +408,12 @@ SECTIONS
+@@ -342,13 +410,12 @@ SECTIONS
   * for the boot processor.
   */
  #define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load
@@ -54778,6 +54780,25 @@
  	__AAL_STAT_ITEMS
  #undef __HANDLE_ITEM
  }
+diff -urNp linux-2.6.35.8/net/ax25/af_ax25.c linux-2.6.35.8/net/ax25/af_ax25.c
+--- linux-2.6.35.8/net/ax25/af_ax25.c	2010-08-26 19:47:12.000000000 -0400
++++ linux-2.6.35.8/net/ax25/af_ax25.c	2010-11-02 19:44:50.000000000 -0400
+@@ -1392,6 +1392,7 @@ static int ax25_getname(struct socket *s
+ 	ax25_cb *ax25;
+ 	int err = 0;
+ 
++	memset(fsa, 0, sizeof(*fsa));
+ 	lock_sock(sk);
+ 	ax25 = ax25_sk(sk);
+ 
+@@ -1403,7 +1404,6 @@ static int ax25_getname(struct socket *s
+ 
+ 		fsa->fsa_ax25.sax25_family = AF_AX25;
+ 		fsa->fsa_ax25.sax25_call   = ax25->dest_addr;
+-		fsa->fsa_ax25.sax25_ndigis = 0;
+ 
+ 		if (ax25->digipeat != NULL) {
+ 			ndigi = ax25->digipeat->ndigi;
 diff -urNp linux-2.6.35.8/net/bridge/br_multicast.c linux-2.6.35.8/net/bridge/br_multicast.c
 --- linux-2.6.35.8/net/bridge/br_multicast.c	2010-08-26 19:47:12.000000000 -0400
 +++ linux-2.6.35.8/net/bridge/br_multicast.c	2010-10-11 22:41:44.000000000 -0400
@@ -55753,9 +55774,28 @@
  			   atomic_read(&s->sk_refcnt),
  			   atomic_read(&s->sk_drops),
  			   sock_i_ino(s)
+diff -urNp linux-2.6.35.8/net/netrom/af_netrom.c linux-2.6.35.8/net/netrom/af_netrom.c
+--- linux-2.6.35.8/net/netrom/af_netrom.c	2010-08-26 19:47:12.000000000 -0400
++++ linux-2.6.35.8/net/netrom/af_netrom.c	2010-11-02 19:46:20.000000000 -0400
+@@ -840,6 +840,7 @@ static int nr_getname(struct socket *soc
+ 	struct sock *sk = sock->sk;
+ 	struct nr_sock *nr = nr_sk(sk);
+ 
++	memset(sax, 0, sizeof(*sax));
+ 	lock_sock(sk);
+ 	if (peer != 0) {
+ 		if (sk->sk_state != TCP_ESTABLISHED) {
+@@ -854,7 +855,6 @@ static int nr_getname(struct socket *soc
+ 		*uaddr_len = sizeof(struct full_sockaddr_ax25);
+ 	} else {
+ 		sax->fsa_ax25.sax25_family = AF_NETROM;
+-		sax->fsa_ax25.sax25_ndigis = 0;
+ 		sax->fsa_ax25.sax25_call   = nr->source_addr;
+ 		*uaddr_len = sizeof(struct sockaddr_ax25);
+ 	}
 diff -urNp linux-2.6.35.8/net/packet/af_packet.c linux-2.6.35.8/net/packet/af_packet.c
 --- linux-2.6.35.8/net/packet/af_packet.c	2010-08-26 19:47:12.000000000 -0400
-+++ linux-2.6.35.8/net/packet/af_packet.c	2010-10-11 22:41:44.000000000 -0400
++++ linux-2.6.35.8/net/packet/af_packet.c	2010-11-02 19:42:44.000000000 -0400
 @@ -1595,8 +1595,9 @@ static int packet_recvmsg(struct kiocb *
  
  		err = -EINVAL;
@@ -55767,7 +55807,24 @@
  
  		if (skb_is_gso(skb)) {
  			struct skb_shared_info *sinfo = skb_shinfo(skb);
-@@ -2093,7 +2094,7 @@ static int packet_getsockopt(struct sock
+@@ -1704,7 +1705,7 @@ static int packet_getname_spkt(struct so
+ 	rcu_read_lock();
+ 	dev = dev_get_by_index_rcu(sock_net(sk), pkt_sk(sk)->ifindex);
+ 	if (dev)
+-		strlcpy(uaddr->sa_data, dev->name, 15);
++		strncpy(uaddr->sa_data, dev->name, 14);
+ 	else
+ 		memset(uaddr->sa_data, 0, 14);
+ 	rcu_read_unlock();
+@@ -1727,6 +1728,7 @@ static int packet_getname(struct socket 
+ 	sll->sll_family = AF_PACKET;
+ 	sll->sll_ifindex = po->ifindex;
+ 	sll->sll_protocol = po->num;
++	sll->sll_pkttype = 0;
+ 	rcu_read_lock();
+ 	dev = dev_get_by_index_rcu(sock_net(sk), po->ifindex);
+ 	if (dev) {
+@@ -2093,7 +2095,7 @@ static int packet_getsockopt(struct sock
  	case PACKET_HDRLEN:
  		if (len > sizeof(int))
  			len = sizeof(int);
@@ -55776,7 +55833,7 @@
  			return -EFAULT;
  		switch (val) {
  		case TPACKET_V1:
-@@ -2125,7 +2126,7 @@ static int packet_getsockopt(struct sock
+@@ -2125,7 +2127,7 @@ static int packet_getsockopt(struct sock
  
  	if (put_user(len, optlen))
  		return -EFAULT;
@@ -55785,7 +55842,7 @@
  		return -EFAULT;
  	return 0;
  }
-@@ -2604,7 +2605,11 @@ static int packet_seq_show(struct seq_fi
+@@ -2604,7 +2606,11 @@ static int packet_seq_show(struct seq_fi
  
  		seq_printf(seq,
  			   "%p %-6d %-4d %04x   %-5d %1d %-6u %-6u %-6lu\n",
@@ -56080,8 +56137,16 @@
  	}
 diff -urNp linux-2.6.35.8/net/tipc/socket.c linux-2.6.35.8/net/tipc/socket.c
 --- linux-2.6.35.8/net/tipc/socket.c	2010-08-26 19:47:12.000000000 -0400
-+++ linux-2.6.35.8/net/tipc/socket.c	2010-09-17 20:12:09.000000000 -0400
-@@ -1451,8 +1451,9 @@ static int connect(struct socket *sock, 
++++ linux-2.6.35.8/net/tipc/socket.c	2010-11-02 19:49:48.000000000 -0400
+@@ -395,6 +395,7 @@ static int get_name(struct socket *sock,
+ 	struct sockaddr_tipc *addr = (struct sockaddr_tipc *)uaddr;
+ 	struct tipc_sock *tsock = tipc_sk(sock->sk);
+ 
++	memset(addr, 0, sizeof(*addr));
+ 	if (peer) {
+ 		if ((sock->state != SS_CONNECTED) &&
+ 			((peer != 2) || (sock->state != SS_DISCONNECTING)))
+@@ -1451,8 +1452,9 @@ static int connect(struct socket *sock, 
  	} else {
  		if (res == 0)
  			res = -ETIMEDOUT;
@@ -56213,6 +56278,26 @@
  	err = handler(dev, info, (union iwreq_data *) iwp, extra);
  
  	iwp->length += essid_compat;
+diff -urNp linux-2.6.35.8/net/x25/x25_facilities.c linux-2.6.35.8/net/x25/x25_facilities.c
+--- linux-2.6.35.8/net/x25/x25_facilities.c	2010-08-26 19:47:12.000000000 -0400
++++ linux-2.6.35.8/net/x25/x25_facilities.c	2010-11-02 19:50:35.000000000 -0400
+@@ -134,14 +134,14 @@ int x25_parse_facilities(struct sk_buff 
+ 		case X25_FAC_CLASS_D:
+ 			switch (*p) {
+ 			case X25_FAC_CALLING_AE:
+-				if (p[1] > X25_MAX_DTE_FACIL_LEN)
++				if (p[1] > X25_MAX_DTE_FACIL_LEN || p[1] == 0)
+ 					break;
+ 				dte_facs->calling_len = p[2];
+ 				memcpy(dte_facs->calling_ae, &p[3], p[1] - 1);
+ 				*vc_fac_mask |= X25_MASK_CALLING_AE;
+ 				break;
+ 			case X25_FAC_CALLED_AE:
+-				if (p[1] > X25_MAX_DTE_FACIL_LEN)
++				if (p[1] > X25_MAX_DTE_FACIL_LEN || p[1] == 0)
+ 					break;
+ 				dte_facs->called_len = p[2];
+ 				memcpy(dte_facs->called_ae, &p[3], p[1] - 1);
 diff -urNp linux-2.6.35.8/net/xfrm/xfrm_policy.c linux-2.6.35.8/net/xfrm/xfrm_policy.c
 --- linux-2.6.35.8/net/xfrm/xfrm_policy.c	2010-08-26 19:47:12.000000000 -0400
 +++ linux-2.6.35.8/net/xfrm/xfrm_policy.c	2010-09-17 20:12:09.000000000 -0400
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-grsec_full.patch?r1=1.3.2.44&r2=1.3.2.45&f=u



More information about the pld-cvs-commit mailing list