From 7ad5f2afac27f35bf3c28049ebbb73a42fea8ba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Sun, 31 Dec 2023 21:17:58 +0000 Subject: [PATCH] Free memory of process that exited. --- posix-runner/posix-runner.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/posix-runner/posix-runner.c b/posix-runner/posix-runner.c index 217b00a..c23d73b 100644 --- a/posix-runner/posix-runner.c +++ b/posix-runner/posix-runner.c @@ -120,8 +120,6 @@ int sys_write(int fd, char* buf, unsigned count, void, void, void) int sys_open(char* name, int flag, int mode, void, void, void) { - fputs(name, stderr); - fputc('\n', stderr); return open(name, flag, mode); } @@ -209,12 +207,12 @@ void sys_exit(unsigned value, void, void, void, void, void) current_process->parent->child_exit_code = value; struct process* child = current_process; current_process = current_process->parent; - // free(child); // FIXME + free(child); memcpy(current_process->saved_stack_pointer, current_process->saved_stack.address, current_process->saved_stack.length); memcpy(current_process->memory, current_process->saved_memory.address, current_process->saved_memory.length); - // free(current_process->saved_stack); // FIXME - // free(current_process->saved_memory); // FIXME + free(current_process->saved_stack); + free(current_process->saved_memory); current_process->brk = current_process->saved_brk; current_process->saved_stack_pointer; /* Simulate return from sys_fork() */