From 2e16a35fa6d7de76ecb36a408e63395939887d4f Mon Sep 17 00:00:00 2001 From: Michael Tuexen <tuexen@fh-muenster.de> Date: Fri, 11 Mar 2016 21:05:52 +0100 Subject: [PATCH] Free only allocated memory. --- gtests/net/packetdrill/run_system_call.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c index d3f1332a..3e1ff063 100644 --- a/gtests/net/packetdrill/run_system_call.c +++ b/gtests/net/packetdrill/run_system_call.c @@ -3473,6 +3473,9 @@ static int syscall_setsockopt(struct state *state, struct syscall_spec *syscall, #if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST) || defined(SCTP_INTERLEAVING_SUPPORTED) || defined(SCTP_ENABLE_STREAM_RESET) struct sctp_assoc_value assoc_value; #endif +#ifdef SCTP_HMAC_IDENT + struct sctp_hmacalgo *hmacalgo = NULL; +#endif #ifdef SCTP_AUTH_ACTIVE_KEY struct sctp_authkeyid authkeyid; #endif @@ -3515,6 +3518,9 @@ static int syscall_setsockopt(struct state *state, struct syscall_spec *syscall, #ifdef SCTP_AUTH_CHUNK struct sctp_authchunk authchunk; #endif +#ifdef SCTP_AUTH_KEY + struct sctp_authkey *key = NULL; +#endif #ifdef SCTP_PEER_ADDR_PARAMS struct sctp_paddrparams paddrparams; #ifdef linux @@ -3522,6 +3528,9 @@ static int syscall_setsockopt(struct state *state, struct syscall_spec *syscall, u8 spp_dscp; #endif #endif +#ifdef SCTP_RESET_STREAMS + struct sctp_reset_streams *reset_streams = NULL; +#endif #ifdef SCTP_ADD_STREAMS struct sctp_add_streams add_streams; #endif @@ -3631,7 +3640,6 @@ static int syscall_setsockopt(struct state *state, struct syscall_spec *syscall, #ifdef SCTP_HMAC_IDENT case EXPR_SCTP_HMACALGO: { int len, i; - struct sctp_hmacalgo *hmacalgo; struct expression_list *list; if (check_type(val_expression->value.sctp_hmacalgo->shmac_idents, EXPR_LIST, error)) { @@ -3892,7 +3900,6 @@ static int syscall_setsockopt(struct state *state, struct syscall_spec *syscall, #endif #ifdef SCTP_AUTH_KEY case EXPR_SCTP_AUTHKEY: { - struct sctp_authkey *key; int i = 0, len = 0; struct expression *key_expr; struct expression_list *list; @@ -3990,7 +3997,6 @@ static int syscall_setsockopt(struct state *state, struct syscall_spec *syscall, #endif #ifdef SCTP_RESET_STREAMS case EXPR_SCTP_RESET_STREAMS: { - struct sctp_reset_streams *reset_streams; struct expression_list *list; int len = 0, i = 0; @@ -4054,8 +4060,15 @@ static int syscall_setsockopt(struct state *state, struct syscall_spec *syscall, result = setsockopt(live_fd, level, optname, optval, optlen); return end_syscall(state, syscall, CHECK_EXACT, result, error); -#if defined(SCTP_HMAC_IDENT) || defined(SCTP_AUTH_KEY) || defined(SCTP_RESET_STREAMS) - free(optval); + +#if defined(SCTP_HMAC_IDENT) + free(hmacalgo); +#endif +#if defined(SCTP_AUTH_KEY) + free(key); +#endif +#if defined(SCTP_RESET_STREAMS) + free(reset_streams); #endif } -- GitLab