diff options
| -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); |
