diff --git a/src/wsc/al_wsc.c b/src/wsc/al_wsc.c index ced28956118b230e9375604e65548c47b6c84d46..699c4c183da78b15758fe6d81a0b756e839e68b4 100644 --- a/src/wsc/al_wsc.c +++ b/src/wsc/al_wsc.c @@ -487,6 +487,8 @@ INT8U wscBuildM1(char *interface_name, INT8U **m1, INT16U *m1_size, void **key) memcpy(private_key->key, priv, priv_len); memcpy(private_key->mac, x->mac_address, 6); + FREE(pub); + FREE(priv); } // AUTHENTICATION TYPES @@ -1292,6 +1294,7 @@ INT8U wscBuildM2(INT8U *m1, INT16U m1_size, INT8U **m2, INT16U *m2_size) // We will use it later... save it. local_privkey = priv; local_privkey_len = priv_len; + FREE(pub); } // Key derivation (no bytes are written to the output buffer in the next @@ -1763,6 +1766,7 @@ INT8U wscBuildM2(INT8U *m1, INT16U m1_size, INT8U **m2, INT16U *m2_size) *m2 = buffer; *m2_size = abs(p - buffer); + FREE(local_privkey); return 1; }