diff options
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/netfilter/ip_nat_snmp_basic.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv4/netfilter/ip_nat_snmp_basic.c b/net/ipv4/netfilter/ip_nat_snmp_basic.c index 4f95d477805c..f029da2a60ee 100644 --- a/net/ipv4/netfilter/ip_nat_snmp_basic.c +++ b/net/ipv4/netfilter/ip_nat_snmp_basic.c | |||
@@ -250,6 +250,7 @@ static unsigned char asn1_header_decode(struct asn1_ctx *ctx, | |||
250 | if (!asn1_id_decode(ctx, cls, con, tag)) | 250 | if (!asn1_id_decode(ctx, cls, con, tag)) |
251 | return 0; | 251 | return 0; |
252 | 252 | ||
253 | def = len = 0; | ||
253 | if (!asn1_length_decode(ctx, &def, &len)) | 254 | if (!asn1_length_decode(ctx, &def, &len)) |
254 | return 0; | 255 | return 0; |
255 | 256 | ||
@@ -669,7 +670,7 @@ static unsigned char snmp_object_decode(struct asn1_ctx *ctx, | |||
669 | unsigned char *eoc, *end, *p; | 670 | unsigned char *eoc, *end, *p; |
670 | unsigned long *lp, *id; | 671 | unsigned long *lp, *id; |
671 | unsigned long ul; | 672 | unsigned long ul; |
672 | long l; | 673 | long l; |
673 | 674 | ||
674 | *obj = NULL; | 675 | *obj = NULL; |
675 | id = NULL; | 676 | id = NULL; |
@@ -699,11 +700,13 @@ static unsigned char snmp_object_decode(struct asn1_ctx *ctx, | |||
699 | return 0; | 700 | return 0; |
700 | } | 701 | } |
701 | 702 | ||
703 | type = 0; | ||
702 | if (!snmp_tag_cls2syntax(tag, cls, &type)) { | 704 | if (!snmp_tag_cls2syntax(tag, cls, &type)) { |
703 | kfree(id); | 705 | kfree(id); |
704 | return 0; | 706 | return 0; |
705 | } | 707 | } |
706 | 708 | ||
709 | l = 0; | ||
707 | switch (type) { | 710 | switch (type) { |
708 | case SNMP_INTEGER: | 711 | case SNMP_INTEGER: |
709 | len = sizeof(long); | 712 | len = sizeof(long); |