Commit Diff


commit - dfd6c25013ffa89ef7879d8f6a2548f989c4f3ea
commit + a2f4a3591f215ab55f58ef4ee630b960af87a4d5
blob - 727b3c59b17342f127cb82d66fdb097648842a14
blob + c91d11d969cc44a6e226b70fc4c3a355600a9218
--- tog/tog.c
+++ tog/tog.c
@@ -5432,7 +5432,13 @@ main(int argc, char *argv[])
 		error = cmd->cmd_main(argc, cmd_argv ? cmd_argv : argv);
 
 	endwin();
-	free(cmd_argv);
+	if (cmd_argv) {
+		int i;
+		for (i = 0; i < argc; i++)
+			free(cmd_argv[i]);
+		free(cmd_argv);
+	}
+
 	if (error && error->code != GOT_ERR_CANCELLED)
 		fprintf(stderr, "%s: %s\n", getprogname(), error->msg);
 	return 0;