diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c
index ed35ab748c36af3156c349d51eba6adc6adab04e..baec1379c11c6b7228b643311240f8fc05f1dd25 100644
--- a/gtests/net/packetdrill/run_system_call.c
+++ b/gtests/net/packetdrill/run_system_call.c
@@ -1762,6 +1762,7 @@ static int syscall_getsockopt(struct state *state, struct syscall_spec *syscall,
 	begin_syscall(state, syscall);
 
 	result = getsockopt(live_fd, level, optname, live_optval, &live_optlen);
+
 	if (end_syscall(state, syscall, CHECK_NON_NEGATIVE, result, error)) {
 		return STATUS_ERR;
 	}
diff --git a/gtests/net/packetdrill/script.c b/gtests/net/packetdrill/script.c
index 7aca4a8fe44908823e54cc3e859c2ae0133ab003..a0b4d4300dafdb8f8885beaada1f86339fa773bc 100644
--- a/gtests/net/packetdrill/script.c
+++ b/gtests/net/packetdrill/script.c
@@ -295,21 +295,21 @@ void free_expression(struct expression *expression)
 		break;
 	case EXPR_LINGER:
 		assert(expression->value.linger);
-		free(expression->value.linger->l_onoff);
-		free(expression->value.linger->l_linger);
+		free_expression(expression->value.linger->l_onoff);
+		free_expression(expression->value.linger->l_linger);
 		break;
 #ifdef SCTP_RTOINFO
 	case EXPR_SCTP_RTOINFO:
 		assert(expression->value.sctp_rtoinfo);
-		free(expression->value.sctp_rtoinfo->srto_initial);
-		free(expression->value.sctp_rtoinfo->srto_max);
-		free(expression->value.sctp_rtoinfo->srto_min);
+		free_expression(expression->value.sctp_rtoinfo->srto_initial);
+		free_expression(expression->value.sctp_rtoinfo->srto_max);
+		free_expression(expression->value.sctp_rtoinfo->srto_min);
 		break;
 #endif
 #if defined(SCTP_MAXSEG) || defined(SCTP_MAX_BURST) || defined(SCTP_INTERLEAVING_SUPPORTED)
 	case EXPR_SCTP_ASSOC_VALUE:
 		assert(expression->value.sctp_assoc_value);
-		free(expression->value.sctp_assoc_value->assoc_value);
+		free_expression(expression->value.sctp_assoc_value->assoc_value);
 		break;
 #endif
 #ifdef SCTP_INITMSG
@@ -321,42 +321,42 @@ void free_expression(struct expression *expression)
 		break;
 #ifdef SCTP_STATUS
 	case EXPR_SCTP_PADDRINFO:
-		free(expression->value.sctp_paddrinfo);
-		free(expression->value.sctp_paddrinfo->spinfo_state);
-		free(expression->value.sctp_paddrinfo->spinfo_cwnd);
-		free(expression->value.sctp_paddrinfo->spinfo_srtt);
-		free(expression->value.sctp_paddrinfo->spinfo_rto);
-		free(expression->value.sctp_paddrinfo->spinfo_mtu);
+		assert(expression->value.sctp_paddrinfo);
+		free_expression(expression->value.sctp_paddrinfo->spinfo_state);
+		free_expression(expression->value.sctp_paddrinfo->spinfo_cwnd);
+		free_expression(expression->value.sctp_paddrinfo->spinfo_srtt);
+		free_expression(expression->value.sctp_paddrinfo->spinfo_rto);
+		free_expression(expression->value.sctp_paddrinfo->spinfo_mtu);
 		break;
 	case EXPR_SCTP_STATUS:
 		assert(expression->value.sctp_status);
-		free(expression->value.sctp_status->sstat_state);
-		free(expression->value.sctp_status->sstat_rwnd);
-		free(expression->value.sctp_status->sstat_unackdata);
-		free(expression->value.sctp_status->sstat_penddata);
-		free(expression->value.sctp_status->sstat_instrms);
-		free(expression->value.sctp_status->sstat_outstrms);
-		free(expression->value.sctp_status->sstat_fragmentation_point);
-		free(expression->value.sctp_status->sstat_primary);
+		free_expression(expression->value.sctp_status->sstat_state);
+		free_expression(expression->value.sctp_status->sstat_rwnd);
+		free_expression(expression->value.sctp_status->sstat_unackdata);
+		free_expression(expression->value.sctp_status->sstat_penddata);
+		free_expression(expression->value.sctp_status->sstat_instrms);
+		free_expression(expression->value.sctp_status->sstat_outstrms);
+		free_expression(expression->value.sctp_status->sstat_fragmentation_point);
+		free_expression(expression->value.sctp_status->sstat_primary);
 		break;
 #endif
 #ifdef SCTP_PEER_ADDR_PARAMS
 	case EXPR_SCTP_PEER_ADDR_PARAMS:
 		assert(expression->value.sctp_paddrparams);
-		free(expression->value.sctp_paddrparams->spp_address);
-		free(expression->value.sctp_paddrparams->spp_hbinterval);
-		free(expression->value.sctp_paddrparams->spp_pathmaxrxt);
-		free(expression->value.sctp_paddrparams->spp_pathmtu);
-		free(expression->value.sctp_paddrparams->spp_flags);
-		free(expression->value.sctp_paddrparams->spp_ipv6_flowlabel);
-		free(expression->value.sctp_paddrparams->spp_dscp);
+		free_expression(expression->value.sctp_paddrparams->spp_address);
+		free_expression(expression->value.sctp_paddrparams->spp_hbinterval);
+		free_expression(expression->value.sctp_paddrparams->spp_pathmaxrxt);
+		free_expression(expression->value.sctp_paddrparams->spp_pathmtu);
+		free_expression(expression->value.sctp_paddrparams->spp_flags);
+		free_expression(expression->value.sctp_paddrparams->spp_ipv6_flowlabel);
+		free_expression(expression->value.sctp_paddrparams->spp_dscp);
 		break;
 #endif
 #ifdef SCTP_SS_VALUE
 	case EXPR_SCTP_STREAM_VALUE:
 		assert(expression->value.sctp_stream_value);
-		free(expression->value.sctp_stream_value->stream_id);
-		free(expression->value.sctp_stream_value->stream_value);
+		free_expression(expression->value.sctp_stream_value->stream_id);
+		free_expression(expression->value.sctp_stream_value->stream_value);
 		break;
 #endif
 	case EXPR_WORD: