diff --git a/gtests/net/packetdrill/run_packet.c b/gtests/net/packetdrill/run_packet.c
index 9038cedbfb319bd50653be918ae0b2d76ea1fece..bb9573fea6a2e63b6e014f5dd489512928e5a288 100644
--- a/gtests/net/packetdrill/run_packet.c
+++ b/gtests/net/packetdrill/run_packet.c
@@ -114,10 +114,10 @@ static void add_packet_dump(char **error, const char *type,
 				 old_error, type, usecs_to_secs(time_usecs), dump,
 				 dump_error ? "\n" : "",
 				 dump_error ? dump_error : "");
+			free(old_error);
 		}
 		free(dump);
 		free(dump_error);
-		free(old_error);
 	}
 }