diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c
index ffe4caf27d3cc7d6fce4cfe614521001b37c460d..1ec6d1a25acc7f3b92ea2c3f061bbf58497123a2 100644
--- a/gtests/net/packetdrill/run_system_call.c
+++ b/gtests/net/packetdrill/run_system_call.c
@@ -1388,6 +1388,7 @@ static void msghdr_free(struct msghdr *msg, size_t iov_len)
 	free(msg->msg_name);
 	iovec_free(msg->msg_iov, iov_len);
 	free(msg->msg_control);
+	free(msg);
 }
 
 /* Allocate and fill in a msghdr described by the given expression. */