* [PATCH 1/2] net: make struct tun_struct private to tun.c
@ 2008-04-05 11:53 Rusty Russell
2008-04-05 11:54 ` [PATCH 2/2] net: check for underlength tap writes Rusty Russell
2008-04-10 18:18 ` [PATCH 1/2] net: make struct tun_struct private to tun.c Max Krasnyanskiy
0 siblings, 2 replies; 6+ messages in thread
From: Rusty Russell @ 2008-04-05 11:53 UTC (permalink / raw)
To: David Miller; +Cc: Max Krasnyansky, netdev
There's no reason for this to be in the header, and it just hurts
recompile time.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
diff -r f657af5295ee drivers/net/tun.c
--- a/drivers/net/tun.c Tue Apr 01 21:19:09 2008 +1000
+++ b/drivers/net/tun.c Fri Apr 04 16:03:31 2008 +1100
@@ -67,9 +67,42 @@
#include <asm/system.h>
#include <asm/uaccess.h>
+/* Uncomment to enable debugging */
+/* #define TUN_DEBUG 1 */
+
#ifdef TUN_DEBUG
static int debug;
+
+#define DBG if(tun->debug)printk
+#define DBG1 if(debug==2)printk
+#else
+#define DBG( a... )
+#define DBG1( a... )
#endif
+
+struct tun_struct {
+ struct list_head list;
+ unsigned long flags;
+ int attached;
+ uid_t owner;
+ gid_t group;
+
+ wait_queue_head_t read_wait;
+ struct sk_buff_head readq;
+
+ struct net_device *dev;
+
+ struct fasync_struct *fasync;
+
+ unsigned long if_flags;
+ u8 dev_addr[ETH_ALEN];
+ u32 chr_filter[2];
+ u32 net_filter[2];
+
+#ifdef TUN_DEBUG
+ int debug;
+#endif
+};
/* Network device part of the driver */
diff -r f657af5295ee include/linux/Kbuild
--- a/include/linux/Kbuild Tue Apr 01 21:19:09 2008 +1000
+++ b/include/linux/Kbuild Fri Apr 04 16:03:31 2008 +1100
@@ -86,6 +86,7 @@ header-y += if_ppp.h
header-y += if_ppp.h
header-y += if_slip.h
header-y += if_strip.h
+header-y += if_tun.h
header-y += if_tunnel.h
header-y += in6.h
header-y += in_route.h
@@ -229,7 +230,6 @@ unifdef-y += if_pppol2tp.h
unifdef-y += if_pppol2tp.h
unifdef-y += if_pppox.h
unifdef-y += if_tr.h
-unifdef-y += if_tun.h
unifdef-y += if_vlan.h
unifdef-y += if_wanpipe.h
unifdef-y += igmp.h
diff -r f657af5295ee include/linux/if_tun.h
--- a/include/linux/if_tun.h Tue Apr 01 21:19:09 2008 +1000
+++ b/include/linux/if_tun.h Fri Apr 04 16:03:31 2008 +1100
@@ -18,46 +18,7 @@
#ifndef __IF_TUN_H
#define __IF_TUN_H
-/* Uncomment to enable debugging */
-/* #define TUN_DEBUG 1 */
-
#include <linux/types.h>
-
-#ifdef __KERNEL__
-
-#ifdef TUN_DEBUG
-#define DBG if(tun->debug)printk
-#define DBG1 if(debug==2)printk
-#else
-#define DBG( a... )
-#define DBG1( a... )
-#endif
-
-struct tun_struct {
- struct list_head list;
- unsigned long flags;
- int attached;
- uid_t owner;
- gid_t group;
-
- wait_queue_head_t read_wait;
- struct sk_buff_head readq;
-
- struct net_device *dev;
-
- struct fasync_struct *fasync;
-
- unsigned long if_flags;
- u8 dev_addr[ETH_ALEN];
- u32 chr_filter[2];
- u32 net_filter[2];
-
-#ifdef TUN_DEBUG
- int debug;
-#endif
-};
-
-#endif /* __KERNEL__ */
/* Read queue size */
#define TUN_READQ_SIZE 500
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] net: check for underlength tap writes
2008-04-05 11:53 [PATCH 1/2] net: make struct tun_struct private to tun.c Rusty Russell
@ 2008-04-05 11:54 ` Rusty Russell
2008-04-10 18:19 ` Max Krasnyanskiy
2008-04-10 18:18 ` [PATCH 1/2] net: make struct tun_struct private to tun.c Max Krasnyanskiy
1 sibling, 1 reply; 6+ messages in thread
From: Rusty Russell @ 2008-04-05 11:54 UTC (permalink / raw)
To: David Miller; +Cc: Max Krasnyansky, netdev
If the user gives a packet under 14 bytes, we'll end up reading off the end
of the skb (not oopsing, just reading off the end).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
diff -r 99132ad16999 drivers/net/tun.c
--- a/drivers/net/tun.c Sat Apr 05 21:20:32 2008 +1100
+++ b/drivers/net/tun.c Sat Apr 05 22:47:20 2008 +1100
@@ -286,8 +286,11 @@ static __inline__ ssize_t tun_get_user(s
return -EFAULT;
}
- if ((tun->flags & TUN_TYPE_MASK) == TUN_TAP_DEV)
+ if ((tun->flags & TUN_TYPE_MASK) == TUN_TAP_DEV) {
align = NET_IP_ALIGN;
+ if (unlikely(len < ETH_HLEN))
+ return -EINVAL;
+ }
if (!(skb = alloc_skb(len + align, GFP_KERNEL))) {
tun->dev->stats.rx_dropped++;
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] net: make struct tun_struct private to tun.c
2008-04-05 11:53 [PATCH 1/2] net: make struct tun_struct private to tun.c Rusty Russell
2008-04-05 11:54 ` [PATCH 2/2] net: check for underlength tap writes Rusty Russell
@ 2008-04-10 18:18 ` Max Krasnyanskiy
2008-04-13 1:49 ` David Miller
1 sibling, 1 reply; 6+ messages in thread
From: Max Krasnyanskiy @ 2008-04-10 18:18 UTC (permalink / raw)
To: Rusty Russell; +Cc: David Miller, netdev
Ack.
Dave, can you please take this patch.
Max
Rusty Russell wrote:
> There's no reason for this to be in the header, and it just hurts
> recompile time.
>
> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
>
> diff -r f657af5295ee drivers/net/tun.c
> --- a/drivers/net/tun.c Tue Apr 01 21:19:09 2008 +1000
> +++ b/drivers/net/tun.c Fri Apr 04 16:03:31 2008 +1100
> @@ -67,9 +67,42 @@
> #include <asm/system.h>
> #include <asm/uaccess.h>
>
> +/* Uncomment to enable debugging */
> +/* #define TUN_DEBUG 1 */
> +
> #ifdef TUN_DEBUG
> static int debug;
> +
> +#define DBG if(tun->debug)printk
> +#define DBG1 if(debug==2)printk
> +#else
> +#define DBG( a... )
> +#define DBG1( a... )
> #endif
> +
> +struct tun_struct {
> + struct list_head list;
> + unsigned long flags;
> + int attached;
> + uid_t owner;
> + gid_t group;
> +
> + wait_queue_head_t read_wait;
> + struct sk_buff_head readq;
> +
> + struct net_device *dev;
> +
> + struct fasync_struct *fasync;
> +
> + unsigned long if_flags;
> + u8 dev_addr[ETH_ALEN];
> + u32 chr_filter[2];
> + u32 net_filter[2];
> +
> +#ifdef TUN_DEBUG
> + int debug;
> +#endif
> +};
>
> /* Network device part of the driver */
>
> diff -r f657af5295ee include/linux/Kbuild
> --- a/include/linux/Kbuild Tue Apr 01 21:19:09 2008 +1000
> +++ b/include/linux/Kbuild Fri Apr 04 16:03:31 2008 +1100
> @@ -86,6 +86,7 @@ header-y += if_ppp.h
> header-y += if_ppp.h
> header-y += if_slip.h
> header-y += if_strip.h
> +header-y += if_tun.h
> header-y += if_tunnel.h
> header-y += in6.h
> header-y += in_route.h
> @@ -229,7 +230,6 @@ unifdef-y += if_pppol2tp.h
> unifdef-y += if_pppol2tp.h
> unifdef-y += if_pppox.h
> unifdef-y += if_tr.h
> -unifdef-y += if_tun.h
> unifdef-y += if_vlan.h
> unifdef-y += if_wanpipe.h
> unifdef-y += igmp.h
> diff -r f657af5295ee include/linux/if_tun.h
> --- a/include/linux/if_tun.h Tue Apr 01 21:19:09 2008 +1000
> +++ b/include/linux/if_tun.h Fri Apr 04 16:03:31 2008 +1100
> @@ -18,46 +18,7 @@
> #ifndef __IF_TUN_H
> #define __IF_TUN_H
>
> -/* Uncomment to enable debugging */
> -/* #define TUN_DEBUG 1 */
> -
> #include <linux/types.h>
> -
> -#ifdef __KERNEL__
> -
> -#ifdef TUN_DEBUG
> -#define DBG if(tun->debug)printk
> -#define DBG1 if(debug==2)printk
> -#else
> -#define DBG( a... )
> -#define DBG1( a... )
> -#endif
> -
> -struct tun_struct {
> - struct list_head list;
> - unsigned long flags;
> - int attached;
> - uid_t owner;
> - gid_t group;
> -
> - wait_queue_head_t read_wait;
> - struct sk_buff_head readq;
> -
> - struct net_device *dev;
> -
> - struct fasync_struct *fasync;
> -
> - unsigned long if_flags;
> - u8 dev_addr[ETH_ALEN];
> - u32 chr_filter[2];
> - u32 net_filter[2];
> -
> -#ifdef TUN_DEBUG
> - int debug;
> -#endif
> -};
> -
> -#endif /* __KERNEL__ */
>
> /* Read queue size */
> #define TUN_READQ_SIZE 500
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] net: check for underlength tap writes
2008-04-05 11:54 ` [PATCH 2/2] net: check for underlength tap writes Rusty Russell
@ 2008-04-10 18:19 ` Max Krasnyanskiy
2008-04-13 1:51 ` David Miller
0 siblings, 1 reply; 6+ messages in thread
From: Max Krasnyanskiy @ 2008-04-10 18:19 UTC (permalink / raw)
To: Rusty Russell; +Cc: David Miller, netdev
Ack. I've been meaning to fix this as well.
Dave, can please merge it.
Thanx
Max
Rusty Russell wrote:
> If the user gives a packet under 14 bytes, we'll end up reading off the end
> of the skb (not oopsing, just reading off the end).
>
> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
>
> diff -r 99132ad16999 drivers/net/tun.c
> --- a/drivers/net/tun.c Sat Apr 05 21:20:32 2008 +1100
> +++ b/drivers/net/tun.c Sat Apr 05 22:47:20 2008 +1100
> @@ -286,8 +286,11 @@ static __inline__ ssize_t tun_get_user(s
> return -EFAULT;
> }
>
> - if ((tun->flags & TUN_TYPE_MASK) == TUN_TAP_DEV)
> + if ((tun->flags & TUN_TYPE_MASK) == TUN_TAP_DEV) {
> align = NET_IP_ALIGN;
> + if (unlikely(len < ETH_HLEN))
> + return -EINVAL;
> + }
>
> if (!(skb = alloc_skb(len + align, GFP_KERNEL))) {
> tun->dev->stats.rx_dropped++;
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] net: make struct tun_struct private to tun.c
2008-04-10 18:18 ` [PATCH 1/2] net: make struct tun_struct private to tun.c Max Krasnyanskiy
@ 2008-04-13 1:49 ` David Miller
0 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2008-04-13 1:49 UTC (permalink / raw)
To: maxk; +Cc: rusty, netdev
From: Max Krasnyanskiy <maxk@qualcomm.com>
Date: Thu, 10 Apr 2008 11:18:04 -0700
> Ack.
> Dave, can you please take this patch.
Applied.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] net: check for underlength tap writes
2008-04-10 18:19 ` Max Krasnyanskiy
@ 2008-04-13 1:51 ` David Miller
0 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2008-04-13 1:51 UTC (permalink / raw)
To: maxk; +Cc: rusty, netdev
From: Max Krasnyanskiy <maxk@qualcomm.com>
Date: Thu, 10 Apr 2008 11:19:38 -0700
> Ack. I've been meaning to fix this as well.
> Dave, can please merge it.
Applied, thanks.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-04-13 1:51 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-05 11:53 [PATCH 1/2] net: make struct tun_struct private to tun.c Rusty Russell
2008-04-05 11:54 ` [PATCH 2/2] net: check for underlength tap writes Rusty Russell
2008-04-10 18:19 ` Max Krasnyanskiy
2008-04-13 1:51 ` David Miller
2008-04-10 18:18 ` [PATCH 1/2] net: make struct tun_struct private to tun.c Max Krasnyanskiy
2008-04-13 1:49 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).