diff options
| author | Patrick McHardy <kaber@trash.net> | 2005-09-13 16:48:00 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2005-09-13 16:48:00 -0400 |
| commit | 5cb30640ce01d76d256533bb2824c9cc14eb4070 (patch) | |
| tree | 1ed9c7e0c13c049dbc8bcc55a852dc0aad00df3d | |
| parent | f3591fff043f5df937120962668c8adfcd3f5b29 (diff) | |
[NETFILTER]: Use correct type for "ports" module parameter
With large port numbers the helper_names buffer can overflow.
Noticed by Samir Bellabes <sbellabes@mandriva.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | net/ipv4/netfilter/ip_conntrack_ftp.c | 6 | ||||
| -rw-r--r-- | net/ipv4/netfilter/ip_conntrack_irc.c | 6 | ||||
| -rw-r--r-- | net/ipv4/netfilter/ip_conntrack_tftp.c | 6 |
3 files changed, 9 insertions, 9 deletions
diff --git a/net/ipv4/netfilter/ip_conntrack_ftp.c b/net/ipv4/netfilter/ip_conntrack_ftp.c index 1b79ec36085f..d77d6b3f5f80 100644 --- a/net/ipv4/netfilter/ip_conntrack_ftp.c +++ b/net/ipv4/netfilter/ip_conntrack_ftp.c | |||
| @@ -29,9 +29,9 @@ static char *ftp_buffer; | |||
| 29 | static DEFINE_SPINLOCK(ip_ftp_lock); | 29 | static DEFINE_SPINLOCK(ip_ftp_lock); |
| 30 | 30 | ||
| 31 | #define MAX_PORTS 8 | 31 | #define MAX_PORTS 8 |
| 32 | static int ports[MAX_PORTS]; | 32 | static short ports[MAX_PORTS]; |
| 33 | static int ports_c; | 33 | static int ports_c; |
| 34 | module_param_array(ports, int, &ports_c, 0400); | 34 | module_param_array(ports, short, &ports_c, 0400); |
| 35 | 35 | ||
| 36 | static int loose; | 36 | static int loose; |
| 37 | module_param(loose, int, 0600); | 37 | module_param(loose, int, 0600); |
| @@ -450,7 +450,7 @@ out_update_nl: | |||
| 450 | } | 450 | } |
| 451 | 451 | ||
| 452 | static struct ip_conntrack_helper ftp[MAX_PORTS]; | 452 | static struct ip_conntrack_helper ftp[MAX_PORTS]; |
| 453 | static char ftp_names[MAX_PORTS][10]; | 453 | static char ftp_names[MAX_PORTS][sizeof("ftp-65535")]; |
| 454 | 454 | ||
| 455 | /* Not __exit: called from init() */ | 455 | /* Not __exit: called from init() */ |
| 456 | static void fini(void) | 456 | static void fini(void) |
diff --git a/net/ipv4/netfilter/ip_conntrack_irc.c b/net/ipv4/netfilter/ip_conntrack_irc.c index d7a8a98c05e1..15457415a4f3 100644 --- a/net/ipv4/netfilter/ip_conntrack_irc.c +++ b/net/ipv4/netfilter/ip_conntrack_irc.c | |||
| @@ -34,7 +34,7 @@ | |||
| 34 | #include <linux/moduleparam.h> | 34 | #include <linux/moduleparam.h> |
| 35 | 35 | ||
| 36 | #define MAX_PORTS 8 | 36 | #define MAX_PORTS 8 |
| 37 | static int ports[MAX_PORTS]; | 37 | static short ports[MAX_PORTS]; |
| 38 | static int ports_c; | 38 | static int ports_c; |
| 39 | static int max_dcc_channels = 8; | 39 | static int max_dcc_channels = 8; |
| 40 | static unsigned int dcc_timeout = 300; | 40 | static unsigned int dcc_timeout = 300; |
| @@ -52,7 +52,7 @@ EXPORT_SYMBOL_GPL(ip_nat_irc_hook); | |||
| 52 | MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>"); | 52 | MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>"); |
| 53 | MODULE_DESCRIPTION("IRC (DCC) connection tracking helper"); | 53 | MODULE_DESCRIPTION("IRC (DCC) connection tracking helper"); |
| 54 | MODULE_LICENSE("GPL"); | 54 | MODULE_LICENSE("GPL"); |
| 55 | module_param_array(ports, int, &ports_c, 0400); | 55 | module_param_array(ports, short, &ports_c, 0400); |
| 56 | MODULE_PARM_DESC(ports, "port numbers of IRC servers"); | 56 | MODULE_PARM_DESC(ports, "port numbers of IRC servers"); |
| 57 | module_param(max_dcc_channels, int, 0400); | 57 | module_param(max_dcc_channels, int, 0400); |
| 58 | MODULE_PARM_DESC(max_dcc_channels, "max number of expected DCC channels per IRC session"); | 58 | MODULE_PARM_DESC(max_dcc_channels, "max number of expected DCC channels per IRC session"); |
| @@ -240,7 +240,7 @@ static int help(struct sk_buff **pskb, | |||
| 240 | } | 240 | } |
| 241 | 241 | ||
| 242 | static struct ip_conntrack_helper irc_helpers[MAX_PORTS]; | 242 | static struct ip_conntrack_helper irc_helpers[MAX_PORTS]; |
| 243 | static char irc_names[MAX_PORTS][10]; | 243 | static char irc_names[MAX_PORTS][sizeof("irc-65535")]; |
| 244 | 244 | ||
| 245 | static void fini(void); | 245 | static void fini(void); |
| 246 | 246 | ||
diff --git a/net/ipv4/netfilter/ip_conntrack_tftp.c b/net/ipv4/netfilter/ip_conntrack_tftp.c index d2b590533452..a78736b8525d 100644 --- a/net/ipv4/netfilter/ip_conntrack_tftp.c +++ b/net/ipv4/netfilter/ip_conntrack_tftp.c | |||
| @@ -26,9 +26,9 @@ MODULE_DESCRIPTION("tftp connection tracking helper"); | |||
| 26 | MODULE_LICENSE("GPL"); | 26 | MODULE_LICENSE("GPL"); |
| 27 | 27 | ||
| 28 | #define MAX_PORTS 8 | 28 | #define MAX_PORTS 8 |
| 29 | static int ports[MAX_PORTS]; | 29 | static short ports[MAX_PORTS]; |
| 30 | static int ports_c; | 30 | static int ports_c; |
| 31 | module_param_array(ports, int, &ports_c, 0400); | 31 | module_param_array(ports, short, &ports_c, 0400); |
| 32 | MODULE_PARM_DESC(ports, "port numbers of tftp servers"); | 32 | MODULE_PARM_DESC(ports, "port numbers of tftp servers"); |
| 33 | 33 | ||
| 34 | #if 0 | 34 | #if 0 |
| @@ -100,7 +100,7 @@ static int tftp_help(struct sk_buff **pskb, | |||
| 100 | } | 100 | } |
| 101 | 101 | ||
| 102 | static struct ip_conntrack_helper tftp[MAX_PORTS]; | 102 | static struct ip_conntrack_helper tftp[MAX_PORTS]; |
| 103 | static char tftp_names[MAX_PORTS][10]; | 103 | static char tftp_names[MAX_PORTS][sizeof("tftp-65535")]; |
| 104 | 104 | ||
| 105 | static void fini(void) | 105 | static void fini(void) |
| 106 | { | 106 | { |
