Author: korli Date: 2010-12-20 22:41:49 +0100 (Mon, 20 Dec 2010) New Revision: 39902 Changeset: http://dev.haiku-os.org/changeset/39902 Modified: haiku/trunk/src/add-ons/kernel/file_systems/ext2/Inode.cpp haiku/trunk/src/add-ons/kernel/file_systems/ext2/InodeJournal.cpp haiku/trunk/src/add-ons/kernel/file_systems/ext2/Journal.cpp haiku/trunk/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp Log: resource leaks CID 5711, 5712, 5713, 5714 Modified: haiku/trunk/src/add-ons/kernel/file_systems/ext2/Inode.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ext2/Inode.cpp 2010-12-20 21:21:37 UTC (rev 39901) +++ haiku/trunk/src/add-ons/kernel/file_systems/ext2/Inode.cpp 2010-12-20 21:41:49 UTC (rev 39902) @@ -643,6 +643,7 @@ status = inode->InitDirectory(transaction, parent); if (status != B_OK) { ERROR("Inode::Create(): InitDirectory() failed\n"); + delete inode; return status; } } @@ -670,8 +671,10 @@ TRACE("Inode::Create(): Saving inode\n"); status = inode->WriteBack(transaction); - if (status != B_OK) + if (status != B_OK) { + delete inode; return status; + } TRACE("Inode::Create(): Creating vnode\n"); Modified: haiku/trunk/src/add-ons/kernel/file_systems/ext2/InodeJournal.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ext2/InodeJournal.cpp 2010-12-20 21:21:37 UTC (rev 39901) +++ haiku/trunk/src/add-ons/kernel/file_systems/ext2/InodeJournal.cpp 2010-12-20 21:41:49 UTC (rev 39902) @@ -62,7 +62,8 @@ if (fInitStatus == B_OK) { fRevokeManager = revokeManager; fInitStatus = _LoadSuperBlock(); - } + } else + delete revokeManager; } } } Modified: haiku/trunk/src/add-ons/kernel/file_systems/ext2/Journal.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ext2/Journal.cpp 2010-12-20 21:21:37 UTC (rev 39901) +++ haiku/trunk/src/add-ons/kernel/file_systems/ext2/Journal.cpp 2010-12-20 21:41:49 UTC (rev 39902) @@ -118,7 +118,8 @@ if (fInitStatus == B_OK) { fRevokeManager = revokeManager; fInitStatus = _LoadSuperBlock(); - } + } else + delete revokeManager; } } Modified: haiku/trunk/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp 2010-12-20 21:21:37 UTC (rev 39901) +++ haiku/trunk/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp 2010-12-20 21:41:49 UTC (rev 39902) @@ -204,7 +204,7 @@ return B_NO_MEMORY; status_t status = inode->InitCheck(); - if (status < B_OK) + if (status != B_OK) delete inode; if (status == B_OK) {