summaryrefslogtreecommitdiffstats
path: root/net/mini_snmpd/patches/102-mib_fix_uninitialized_memory.patch
blob: fc8cecf2e59505d543cb9c4a5ca69d7d31aa07de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
--- a/mib.c
+++ b/mib.c
@@ -290,6 +290,7 @@ static int mib_build_entry(const oid_t *
 			value->data.max_length = sizeof (int) + 2;
 			value->data.encoded_length = 0;
 			value->data.buffer = malloc(value->data.max_length);
+			memset(value->data.buffer, 0, value->data.max_length);
 			if (encode_snmp_element_integer(value, (int)default_value) == -1) {
 				return -1;
 			}
@@ -298,6 +299,7 @@ static int mib_build_entry(const oid_t *
 			value->data.max_length = strlen((const char *)default_value) + 4;
 			value->data.encoded_length = 0;
 			value->data.buffer = malloc(value->data.max_length);
+			memset(value->data.buffer, 0, value->data.max_length);
 			if (encode_snmp_element_string(value, (const char *)default_value) == -1) {
 				return -1;
 			}
@@ -306,6 +308,7 @@ static int mib_build_entry(const oid_t *
 			value->data.max_length = MAX_NR_SUBIDS * 5 + 4;
 			value->data.encoded_length = 0;
 			value->data.buffer = malloc(value->data.max_length);
+			memset(value->data.buffer, 0, value->data.max_length);
 			if (encode_snmp_element_oid(value, oid_aton((const char *)default_value)) == -1) {
 				return -1;
 			}
@@ -316,6 +319,7 @@ static int mib_build_entry(const oid_t *
 			value->data.max_length = sizeof (unsigned int) + 2;
 			value->data.encoded_length = 0;
 			value->data.buffer = malloc(value->data.max_length);
+			memset(value->data.buffer, 0, value->data.max_length);
 			if (encode_snmp_element_unsigned(value, type, (unsigned int)default_value) == -1) {
 				return -1;
 			}