projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-serial
[powerpc.git]
/
net
/
ipv4
/
netfilter
/
ip_nat_snmp_basic.c
diff --git
a/net/ipv4/netfilter/ip_nat_snmp_basic.c
b/net/ipv4/netfilter/ip_nat_snmp_basic.c
index
c622538
..
0b1b416
100644
(file)
--- a/
net/ipv4/netfilter/ip_nat_snmp_basic.c
+++ b/
net/ipv4/netfilter/ip_nat_snmp_basic.c
@@
-43,7
+43,6
@@
* 2000-08-06: Convert to new helper API (Harald Welte).
*
*/
* 2000-08-06: Convert to new helper API (Harald Welte).
*
*/
-#include <linux/config.h>
#include <linux/in.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/in.h>
#include <linux/module.h>
#include <linux/types.h>
@@
-768,6
+767,7
@@
static unsigned char snmp_object_decode(struct asn1_ctx *ctx,
len *= sizeof(unsigned long);
*obj = kmalloc(sizeof(struct snmp_object) + len, GFP_ATOMIC);
if (*obj == NULL) {
len *= sizeof(unsigned long);
*obj = kmalloc(sizeof(struct snmp_object) + len, GFP_ATOMIC);
if (*obj == NULL) {
+ kfree(lp);
kfree(id);
if (net_ratelimit())
printk("OOM in bsalg (%d)\n", __LINE__);
kfree(id);
if (net_ratelimit())
printk("OOM in bsalg (%d)\n", __LINE__);
@@
-1003,12
+1003,12
@@
static unsigned char snmp_trap_decode(struct asn1_ctx *ctx,
return 1;
return 1;
+err_addr_free:
+ kfree((unsigned long *)trap->ip_address);
+
err_id_free:
kfree(trap->id);
err_id_free:
kfree(trap->id);
-err_addr_free:
- kfree((unsigned long *)trap->ip_address);
-
return 0;
}
return 0;
}
@@
-1126,11
+1126,10
@@
static int snmp_parse_mangle(unsigned char *msg,
struct snmp_v1_trap trap;
unsigned char ret = snmp_trap_decode(&ctx, &trap, map, check);
struct snmp_v1_trap trap;
unsigned char ret = snmp_trap_decode(&ctx, &trap, map, check);
- /* Discard trap allocations regardless */
- kfree(trap.id);
- kfree((unsigned long *)trap.ip_address);
-
- if (!ret)
+ if (ret) {
+ kfree(trap.id);
+ kfree((unsigned long *)trap.ip_address);
+ } else
return ret;
} else {
return ret;
} else {
@@
-1348,4
+1347,4
@@
static void __exit ip_nat_snmp_basic_fini(void)
module_init(ip_nat_snmp_basic_init);
module_exit(ip_nat_snmp_basic_fini);
module_init(ip_nat_snmp_basic_init);
module_exit(ip_nat_snmp_basic_fini);
-module_param(debug,
bool
, 0600);
+module_param(debug,
int
, 0600);