From 0a96e027953a6d20d6a36ad2cd4f91714137920f Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Mon, 22 May 2006 16:55:14 -0700 Subject: [PATCH] --- yaml --- r: 26939 b: refs/heads/master c: f41d5bb1d9f49b03af7126d07a511facbe283a92 h: refs/heads/master i: 26937: f7ceee758946fddbade68d6706dc27d7ae9fd075 26935: d83221d0edc5281bd5e957c62c3737d325091eb3 v: v3 --- [refs] | 2 +- trunk/net/ipv4/netfilter/ip_nat_snmp_basic.c | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index f0ff0e2b39a4..f5aa20b9d9ec 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f5565f4a90bdfea99e4bcd8411ff5272ebdbdbf8 +refs/heads/master: f41d5bb1d9f49b03af7126d07a511facbe283a92 diff --git a/trunk/net/ipv4/netfilter/ip_nat_snmp_basic.c b/trunk/net/ipv4/netfilter/ip_nat_snmp_basic.c index c62253845538..688a2f29fadf 100644 --- a/trunk/net/ipv4/netfilter/ip_nat_snmp_basic.c +++ b/trunk/net/ipv4/netfilter/ip_nat_snmp_basic.c @@ -1003,12 +1003,12 @@ static unsigned char snmp_trap_decode(struct asn1_ctx *ctx, return 1; +err_addr_free: + kfree((unsigned long *)trap->ip_address); + err_id_free: kfree(trap->id); -err_addr_free: - kfree((unsigned long *)trap->ip_address); - 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); - /* 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 {