Index: /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlExec.cpp
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlExec.cpp	(revision 35243)
+++ /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlExec.cpp	(revision 35244)
@@ -1618,6 +1618,5 @@
         VBoxServiceError("ControlExec: Failed to retrieve exec input command! Error: %Rrc\n", rc);
     }
-    else if (   cbSize <= 0
-             || cbSize >  cbMaxBufSize)
+    else if (cbSize >  cbMaxBufSize)
     {
         VBoxServiceError("ControlExec: Input size is invalid! cbSize=%u\n", cbSize);
@@ -1661,5 +1660,5 @@
             if (RT_SUCCESS(rc))
             {
-                if (cbWritten) /* Did we write something? */
+                if (cbWritten || !cbSize) /* Did we write something or was there anything to write at all? */
                 {
                     uStatus = INPUT_STS_WRITTEN;
Index: /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceToolBox.cpp
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceToolBox.cpp	(revision 35243)
+++ /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceToolBox.cpp	(revision 35244)
@@ -186,5 +186,5 @@
         {
             rc = RTFileRead(hInput, abBuf, sizeof(abBuf), &cbRead);
-            if (RT_SUCCESS(rc) && cbRead)
+            if (RT_SUCCESS(rc))
             {
                 rc = RTFileWrite(hOutput, abBuf, cbRead, NULL /* Try to write all at once! */);
@@ -193,9 +193,6 @@
             else
             {
-                if (   cbRead == 0
-                    && rc     == VERR_BROKEN_PIPE)
-                {
+                if (rc == VERR_BROKEN_PIPE)
                     rc = VINF_SUCCESS;
-                }
                 break;
             }
