From 2efabd3e6604b8a9e8f70baf52f57696680c7855 Mon Sep 17 00:00:00 2001 From: MaxXing Date: Sun, 1 May 2022 08:17:33 +0800 Subject: Fix a file leak in function `at_kfd` (#276) --- pk/syscall.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pk/syscall.c b/pk/syscall.c index ec53b32..bda4393 100644 --- a/pk/syscall.c +++ b/pk/syscall.c @@ -129,7 +129,9 @@ static int at_kfd(int dirfd) file_t* dir = file_get(dirfd); if (dir == NULL) return -1; - return dir->kfd; + int kfd = dir->kfd; + file_decref(dir); + return kfd; } int sys_openat(int dirfd, const char* name, int flags, int mode) -- cgit v1.1