Index: /trunk/src/VBox/Devices/Storage/RawHDDCore.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/RawHDDCore.cpp	(revision 23912)
+++ /trunk/src/VBox/Devices/Storage/RawHDDCore.cpp	(revision 23913)
@@ -526,4 +526,6 @@
     if (RT_SUCCESS(rc))
         *ppBackendData = pImage;
+    else
+        RTMemFree(pImage);
 
 out:
@@ -602,8 +604,13 @@
             rc = rawOpenImage(pImage, uOpenFlags);
             if (RT_FAILURE(rc))
+            {
+                RTMemFree(pImage);
                 goto out;
+            }
         }
         *ppBackendData = pImage;
     }
+    else
+        RTMemFree(pImage);
 
 out:
@@ -632,5 +639,8 @@
      * not signalled as an error. After all nothing bad happens. */
     if (pImage)
+    {
         rawFreeImage(pImage, fDelete);
+        RTMemFree(pImage);
+    }
 
     LogFlowFunc(("returns %Rrc\n", rc));
