Index: /trunk/src/VBox/GuestHost/SharedClipboard/clipboard-common.cpp
===================================================================
--- /trunk/src/VBox/GuestHost/SharedClipboard/clipboard-common.cpp	(revision 82476)
+++ /trunk/src/VBox/GuestHost/SharedClipboard/clipboard-common.cpp	(revision 82477)
@@ -45,25 +45,21 @@
 {
     AssertPtrReturn(pvData, VERR_INVALID_POINTER);
-    AssertReturn   (cbData, VERR_INVALID_PARAMETER);
-
-    PSHCLEVENTPAYLOAD pPayload =
-        (PSHCLEVENTPAYLOAD)RTMemAlloc(sizeof(SHCLEVENTPAYLOAD));
-    if (!pPayload)
-        return VERR_NO_MEMORY;
-
-    pPayload->pvData = RTMemAlloc(cbData);
-    if (pPayload->pvData)
-    {
-        memcpy(pPayload->pvData, pvData, cbData);
-
-        pPayload->cbData = cbData;
-        pPayload->uID    = uID;
-
-        *ppPayload = pPayload;
-
-        return VINF_SUCCESS;
-    }
-
-    RTMemFree(pPayload);
+    AssertReturn(cbData > 0, VERR_INVALID_PARAMETER);
+
+    PSHCLEVENTPAYLOAD pPayload = (PSHCLEVENTPAYLOAD)RTMemAlloc(sizeof(SHCLEVENTPAYLOAD));
+    if (pPayload)
+    {
+        pPayload->pvData = RTMemDup(pvData, cbData);
+        if (pPayload->pvData)
+        {
+            pPayload->cbData = cbData;
+            pPayload->uID    = uID;
+
+            *ppPayload = pPayload;
+            return VINF_SUCCESS;
+        }
+
+        RTMemFree(pPayload);
+    }
     return VERR_NO_MEMORY;
 }
@@ -88,7 +84,7 @@
 
     pPayload->cbData = 0;
+    pPayload->uID = UINT32_MAX;
 
     RTMemFree(pPayload);
-    pPayload = NULL;
 }
 
@@ -148,9 +144,6 @@
 int ShClEventSourceCreate(PSHCLEVENTSOURCE pSource, SHCLEVENTSOURCEID uID)
 {
+    LogFlowFunc(("pSource=%p, uID=%RU16\n", pSource, uID));
     AssertPtrReturn(pSource, VERR_INVALID_POINTER);
-
-    LogFlowFunc(("pSource=%p, uID=%RU32\n", pSource, uID));
-
-    int rc = VINF_SUCCESS;
 
     RTListInit(&pSource->lstEvents);
@@ -160,6 +153,6 @@
     pSource->uEventIDNext = RTRandU32() % VBOX_SHCL_MAX_EVENTS;
 
-    LogFlowFuncLeaveRC(rc);
-    return rc;
+    LogFlowFuncLeaveRC(VINF_SUCCESS);
+    return VINF_SUCCESS;
 }
 
@@ -178,6 +171,6 @@
     ShClEventSourceReset(pSource);
 
-    pSource->uID          = 0;
-    pSource->uEventIDNext = 0;
+    pSource->uID          = UINT16_MAX;
+    pSource->uEventIDNext = UINT32_MAX;
 }
 
