[haiku-commits] r39902 - haiku/trunk/src/add-ons/kernel/file_systems/ext2

  • From: korli@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 20 Dec 2010 22:41:49 +0100 (CET)

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) {


Other related posts:

  • » [haiku-commits] r39902 - haiku/trunk/src/add-ons/kernel/file_systems/ext2 - korli