From d938c7118f2b200cbd07c0c3dc360889395edf4a Mon Sep 17 00:00:00 2001 From: Murai Takashi Date: Thu, 14 Feb 2019 06:31:50 +0900 Subject: [PATCH] userlandfs/server/fuse: Fix potential memory leak * Fix potential leak of 'cookie' at line 2206, which is allocated at line 2203. Pointed out by Clang Static Analyzer. * Add NULL check to 'cookie'. Change-Id: Ibfdbe3a52ceb0d29adf1acca51fb7b27d2c532f3 Reviewed-on: https://review.haiku-os.org/c/1065 Reviewed-by: Adrien Destugues --- .../file_systems/userlandfs/server/fuse/FUSEVolume.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.cpp index 1318096167..a358c74a04 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.cpp @@ -2201,9 +2201,13 @@ FUSEVolume::OpenAttr(void* _node, const char* name, int openMode, } AttrCookie* cookie = new(std::nothrow)AttrCookie(name); + if (cookie == NULL) + RETURN_ERROR(B_NO_MEMORY); error = cookie->Allocate(attrSize); - if (error != B_OK) + if (error != B_OK) { + delete cookie; RETURN_ERROR(error); + } int bytesRead = fuse_fs_getxattr(fFS, path, name, cookie->Buffer(), attrSize);