From 14d19200394fd9a4b9186d1dd49439f891428533 Mon Sep 17 00:00:00 2001 From: Puck Meerburg Date: Fri, 16 Jan 2015 20:42:15 +0100 Subject: [PATCH] bindfs: Keep settings in scope for the entire Mount operation Signed-off-by: Adrien Destugues * Fixes #11760. * Bug made visible by the changes to fix private driver settings. Before the change, the settings were most often leaked, so there was no use-after-free. --- src/add-ons/kernel/file_systems/bindfs/Volume.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/add-ons/kernel/file_systems/bindfs/Volume.cpp b/src/add-ons/kernel/file_systems/bindfs/Volume.cpp index 24453909cf..e811459d34 100644 --- a/src/add-ons/kernel/file_systems/bindfs/Volume.cpp +++ b/src/add-ons/kernel/file_systems/bindfs/Volume.cpp @@ -51,10 +51,10 @@ Volume::Mount(const char* parameterString) { const char* source = NULL; void* parameterHandle = parse_driver_settings_string(parameterString); - if (parameterHandle != NULL) { + CObjectDeleter parameterDeleter(parameterHandle, + delete_driver_settings); + if (parameterHandle != NULL) source = get_driver_parameter(parameterHandle, "source", NULL, NULL); - delete_driver_settings(parameterHandle); - } if (source == NULL || source[0] == '\0') { ERROR("need source folder ('source' parameter)!\n"); RETURN_ERROR(B_BAD_VALUE);