Fix for bug 2823

Do not pass automatic variables back into caller space.

svn path=/trunk/; revision=26426
This commit is contained in:
Jaap Keuter 2008-10-13 06:56:27 +00:00
parent 7f36dc44ce
commit 49fe94aa3f
2 changed files with 15 additions and 7 deletions

View File

@ -1120,7 +1120,7 @@ static gboolean snmp_usm_auth_md5(snmp_usm_params_t* p, guint8** calc_auth_p, gu
guint8* auth;
guint8* key;
guint key_len;
guint8 calc_auth[16];
guint8 *calc_auth;
guint start;
guint end;
guint i;
@ -1160,6 +1160,8 @@ static gboolean snmp_usm_auth_md5(snmp_usm_params_t* p, guint8** calc_auth_p, gu
msg[i] = '\0';
}
calc_auth = ep_alloc(16);
md5_hmac(msg, msg_len, key, key_len, calc_auth);
if (calc_auth_p) *calc_auth_p = calc_auth;
@ -1176,7 +1178,7 @@ static gboolean snmp_usm_auth_sha1(snmp_usm_params_t* p _U_, guint8** calc_auth_
guint8* auth;
guint8* key;
guint key_len;
guint8 calc_auth[20];
guint8 *calc_auth;
guint start;
guint end;
guint i;
@ -1216,6 +1218,8 @@ static gboolean snmp_usm_auth_sha1(snmp_usm_params_t* p _U_, guint8** calc_auth_
msg[i] = '\0';
}
calc_auth = ep_alloc(20);
sha1_hmac(key, key_len, msg, msg_len, calc_auth);
if (calc_auth_p) *calc_auth_p = calc_auth;

View File

@ -1222,7 +1222,7 @@ static gboolean snmp_usm_auth_md5(snmp_usm_params_t* p, guint8** calc_auth_p, gu
guint8* auth;
guint8* key;
guint key_len;
guint8 calc_auth[16];
guint8 *calc_auth;
guint start;
guint end;
guint i;
@ -1262,6 +1262,8 @@ static gboolean snmp_usm_auth_md5(snmp_usm_params_t* p, guint8** calc_auth_p, gu
msg[i] = '\0';
}
calc_auth = ep_alloc(16);
md5_hmac(msg, msg_len, key, key_len, calc_auth);
if (calc_auth_p) *calc_auth_p = calc_auth;
@ -1278,7 +1280,7 @@ static gboolean snmp_usm_auth_sha1(snmp_usm_params_t* p _U_, guint8** calc_auth_
guint8* auth;
guint8* key;
guint key_len;
guint8 calc_auth[20];
guint8 *calc_auth;
guint start;
guint end;
guint i;
@ -1318,6 +1320,8 @@ static gboolean snmp_usm_auth_sha1(snmp_usm_params_t* p _U_, guint8** calc_auth_
msg[i] = '\0';
}
calc_auth = ep_alloc(20);
sha1_hmac(key, key_len, msg, msg_len, calc_auth);
if (calc_auth_p) *calc_auth_p = calc_auth;
@ -2588,7 +2592,7 @@ static void dissect_SMUX_PDUs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
/*--- End of included file: packet-snmp-fn.c ---*/
#line 1399 "packet-snmp-template.c"
#line 1403 "packet-snmp-template.c"
guint
@ -3365,7 +3369,7 @@ void proto_register_snmp(void) {
"snmp.T_operation", HFILL }},
/*--- End of included file: packet-snmp-hfarr.c ---*/
#line 1911 "packet-snmp-template.c"
#line 1915 "packet-snmp-template.c"
};
/* List of subtrees */
@ -3405,7 +3409,7 @@ void proto_register_snmp(void) {
&ett_snmp_RReqPDU_U,
/*--- End of included file: packet-snmp-ettarr.c ---*/
#line 1927 "packet-snmp-template.c"
#line 1931 "packet-snmp-template.c"
};
module_t *snmp_module;
static uat_field_t users_fields[] = {