Index: /trunk/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp	(revision 44097)
+++ /trunk/src/VBox/Additions/common/VBoxService/VBoxServicePropCache.cpp	(revision 44098)
@@ -39,6 +39,7 @@
 PVBOXSERVICEVEPROPCACHEENTRY vboxServicePropCacheFindInternal(PVBOXSERVICEVEPROPCACHE pCache, const char *pszName, uint32_t uFlags)
 {
-    AssertPtr(pCache);
-    AssertPtr(pszName);
+    AssertPtrReturn(pCache, NULL);
+    AssertPtrReturn(pszName, NULL);
+
     /** @todo This is a O(n) lookup, maybe improve this later to O(1) using a
      *        map.
@@ -66,9 +67,16 @@
 PVBOXSERVICEVEPROPCACHEENTRY vboxServicePropCacheInsertEntryInternal(PVBOXSERVICEVEPROPCACHE pCache, const char *pszName)
 {
-    AssertPtr(pszName);
+    AssertPtrReturn(pCache, NULL);
+    AssertPtrReturn(pszName, NULL);
+
     PVBOXSERVICEVEPROPCACHEENTRY pNode = (PVBOXSERVICEVEPROPCACHEENTRY)RTMemAlloc(sizeof(VBOXSERVICEVEPROPCACHEENTRY));
     if (pNode)
     {
         pNode->pszName = RTStrDup(pszName);
+        if (!pNode->pszName)
+        {
+            RTMemFree(pNode);
+            return VERR_NO_MEMORY;
+        }
         pNode->pszValue = NULL;
         pNode->fFlags = 0;
@@ -89,5 +97,6 @@
 int vboxServicePropCacheWritePropF(uint32_t u32ClientId, const char *pszName, uint32_t fFlags, const char *pszValueFormat, ...)
 {
-    AssertPtr(pszName);
+    AssertPtrReturn(pszName, VERR_INVALID_POINTER);
+
     int rc;
     if (pszValueFormat != NULL)
@@ -142,5 +151,5 @@
 int VBoxServicePropCacheCreate(PVBOXSERVICEVEPROPCACHE pCache, uint32_t uClientId)
 {
-    AssertPtr(pCache);
+    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
     /** @todo Prevent init the cache twice!
      *  r=bird: Use a magic. */
@@ -165,6 +174,6 @@
                                     const char *pszName, uint32_t fFlags, const char *pszValueReset)
 {
-    AssertPtr(pCache);
-    AssertPtr(pszName);
+    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
+    AssertPtrReturn(pszName, VERR_INVALID_POINTER);
     PVBOXSERVICEVEPROPCACHEENTRY pNode = vboxServicePropCacheFindInternal(pCache, pszName, 0);
     if (pNode == NULL)
@@ -183,4 +192,5 @@
                     RTStrFree(pNode->pszValueReset);
                 pNode->pszValueReset = RTStrDup(pszValueReset);
+                AssertPtr(pNode->pszValueReset);
             }
             rc = RTCritSectLeave(&pCache->CritSect);
@@ -206,7 +216,7 @@
 int VBoxServicePropCacheUpdate(PVBOXSERVICEVEPROPCACHE pCache, const char *pszName, const char *pszValueFormat, ...)
 {
-    AssertPtr(pCache);
+    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
     Assert(pCache->uClientID);
-    AssertPtr(pszName);
+    AssertPtrReturn(pszName, VERR_INVALID_POINTER);
 
     /*
@@ -251,6 +261,10 @@
                 /* Write the update. */
                 rc = vboxServicePropCacheWritePropF(pCache->uClientID, pNode->pszName, pNode->fFlags, pszValue);
+                VBoxServiceVerbose(4, "PropCache %p: Written \"%s\"=\"%s\" (flags: %x), rc=%Rrc\n",
+                                   pCache, pNode->pszName, pszValue, pNode->fFlags, rc);
                 RTStrFree(pNode->pszValue);
                 pNode->pszValue = RTStrDup(pszValue);
+                if (!pNode->pszValue)
+                    rc = VERR_NO_MEMORY;
             }
             else
@@ -267,4 +281,6 @@
                 rc = vboxServicePropCacheWritePropF(pCache->uClientID, pNode->pszName,
                                                     0, /* Flags */ NULL /* Value */);
+                VBoxServiceVerbose(4, "PropCache %p: Deleted \"%s\"=\"%s\" (flags: %x), rc=%Rrc\n",
+                                   pCache, pNode->pszName, pNode->pszValue, pNode->fFlags, rc);
             }
             else
@@ -296,6 +312,7 @@
 int VBoxServicePropCacheUpdateByPath(PVBOXSERVICEVEPROPCACHE pCache, const char *pszValue, uint32_t fFlags, const char *pszPathFormat, ...)
 {
-    AssertPtr(pCache);
-    AssertPtr(pszPathFormat);
+    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
+    AssertPtrReturn(pszPathFormat, VERR_INVALID_POINTER);
+
     int rc = VERR_NOT_FOUND;
     PVBOXSERVICEVEPROPCACHEENTRY pNodeIt = NULL;
@@ -342,5 +359,6 @@
 int VBoxServicePropCacheFlush(PVBOXSERVICEVEPROPCACHE pCache)
 {
-    AssertPtr(pCache);
+    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
+
     int rc = VINF_SUCCESS;
     PVBOXSERVICEVEPROPCACHEENTRY pNodeIt = NULL;
@@ -367,5 +385,5 @@
 void VBoxServicePropCacheDestroy(PVBOXSERVICEVEPROPCACHE pCache)
 {
-    AssertPtr(pCache);
+    AssertPtrReturn(pCache, VERR_INVALID_POINTER);
     Assert(pCache->uClientID);
 
