From a56422b448e15901c984daad5f4df2b94b6fff18 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Thu, 1 Aug 2013 15:42:51 +0200 Subject: [PATCH] VFS: fs_mount(): fix FS name leak Fixes #9909. --- src/system/kernel/fs/vfs.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/system/kernel/fs/vfs.cpp b/src/system/kernel/fs/vfs.cpp index 114d6ab7c2..0b5371b89d 100644 --- a/src/system/kernel/fs/vfs.cpp +++ b/src/system/kernel/fs/vfs.cpp @@ -7283,11 +7283,11 @@ fs_mount(char* path, const char* device, const char* fsName, uint32 flags, break; } + MemoryDeleter layerFSNameDeleter(layerFSName); volume = (fs_volume*)malloc(sizeof(fs_volume)); if (volume == NULL) { status = B_NO_MEMORY; - free(layerFSName); goto err1; } @@ -7304,7 +7304,6 @@ fs_mount(char* path, const char* device, const char* fsName, uint32 flags, volume->file_system_name = get_file_system_name(layerFSName); if (volume->file_system_name == NULL) { status = B_NO_MEMORY; - free(layerFSName); free(volume); goto err1; } @@ -7312,7 +7311,6 @@ fs_mount(char* path, const char* device, const char* fsName, uint32 flags, volume->file_system = get_file_system(layerFSName); if (volume->file_system == NULL) { status = B_DEVICE_NOT_FOUND; - free(layerFSName); free(volume->file_system_name); free(volume); goto err1;