From fffefeba8f928b00f87e38fdd5267cb749fbc134 Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Thu, 9 Jul 2015 18:32:30 +0200 Subject: [PATCH] Fix execve(2) keeping program descriptors open. --- kernel/process.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/process.cpp b/kernel/process.cpp index 75241717..ffbc6a00 100644 --- a/kernel/process.cpp +++ b/kernel/process.cpp @@ -1169,6 +1169,7 @@ int sys_execve_kernel(const char* filename, Ref desc = from->open(&ctx, filename, O_EXEC | O_READ, 0); if ( !desc ) return -1; + from.Reset(); struct stat st; if ( desc->stat(&ctx, &st) ) @@ -1195,6 +1196,8 @@ int sys_execve_kernel(const char* filename, sofar += amount; } + desc.Reset(); + int result = process->Execute(filename, buffer, filesize, argc, argv, envc, envp, regs); if ( result == 0 || errno != ENOEXEC ||