Skip to content

Commit

Permalink
[NETFILTER]: Use correct type for "ports" module parameter
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Patrick McHardy authored and David S. Miller committed Sep 13, 2005
1 parent f3591ff commit 5cb3064
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
6 changes: 3 additions & 3 deletions net/ipv4/netfilter/ip_conntrack_ftp.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ static char *ftp_buffer;
static DEFINE_SPINLOCK(ip_ftp_lock);

#define MAX_PORTS 8
static int ports[MAX_PORTS];
static short ports[MAX_PORTS];
static int ports_c;
module_param_array(ports, int, &ports_c, 0400);
module_param_array(ports, short, &ports_c, 0400);

static int loose;
module_param(loose, int, 0600);
Expand Down Expand Up @@ -450,7 +450,7 @@ static int help(struct sk_buff **pskb,
}

static struct ip_conntrack_helper ftp[MAX_PORTS];
static char ftp_names[MAX_PORTS][10];
static char ftp_names[MAX_PORTS][sizeof("ftp-65535")];

/* Not __exit: called from init() */
static void fini(void)
Expand Down
6 changes: 3 additions & 3 deletions net/ipv4/netfilter/ip_conntrack_irc.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
#include <linux/moduleparam.h>

#define MAX_PORTS 8
static int ports[MAX_PORTS];
static short ports[MAX_PORTS];
static int ports_c;
static int max_dcc_channels = 8;
static unsigned int dcc_timeout = 300;
Expand All @@ -52,7 +52,7 @@ EXPORT_SYMBOL_GPL(ip_nat_irc_hook);
MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>");
MODULE_DESCRIPTION("IRC (DCC) connection tracking helper");
MODULE_LICENSE("GPL");
module_param_array(ports, int, &ports_c, 0400);
module_param_array(ports, short, &ports_c, 0400);
MODULE_PARM_DESC(ports, "port numbers of IRC servers");
module_param(max_dcc_channels, int, 0400);
MODULE_PARM_DESC(max_dcc_channels, "max number of expected DCC channels per IRC session");
Expand Down Expand Up @@ -240,7 +240,7 @@ static int help(struct sk_buff **pskb,
}

static struct ip_conntrack_helper irc_helpers[MAX_PORTS];
static char irc_names[MAX_PORTS][10];
static char irc_names[MAX_PORTS][sizeof("irc-65535")];

static void fini(void);

Expand Down
6 changes: 3 additions & 3 deletions net/ipv4/netfilter/ip_conntrack_tftp.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ MODULE_DESCRIPTION("tftp connection tracking helper");
MODULE_LICENSE("GPL");

#define MAX_PORTS 8
static int ports[MAX_PORTS];
static short ports[MAX_PORTS];
static int ports_c;
module_param_array(ports, int, &ports_c, 0400);
module_param_array(ports, short, &ports_c, 0400);
MODULE_PARM_DESC(ports, "port numbers of tftp servers");

#if 0
Expand Down Expand Up @@ -100,7 +100,7 @@ static int tftp_help(struct sk_buff **pskb,
}

static struct ip_conntrack_helper tftp[MAX_PORTS];
static char tftp_names[MAX_PORTS][10];
static char tftp_names[MAX_PORTS][sizeof("tftp-65535")];

static void fini(void)
{
Expand Down

0 comments on commit 5cb3064

Please sign in to comment.