Assorted memleak fixes. Found on Michael Stefaniuc smatch list.

diff --git a/dlls/x11drv/clipboard.c b/dlls/x11drv/clipboard.c
index ae76f3e..8e42bc9 100644
--- a/dlls/x11drv/clipboard.c
+++ b/dlls/x11drv/clipboard.c
@@ -1262,13 +1262,17 @@
     {
         /* Turn on the DDESHARE flag to enable shared 32 bit memory */
         hClipData = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, cBytes);
+        if (hClipData == 0) return NULL;
+
         if ((lpClipData = GlobalLock(hClipData)))
         {
             memcpy(lpClipData, lpdata, cBytes);
             GlobalUnlock(hClipData);
         }
-        else
+        else {
+            GlobalFree(hClipData);
             hClipData = 0;
+        }
     }
 
     return hClipData;
@@ -1296,6 +1300,7 @@
         cBytes = GlobalSize(lpData->hData32);
 
         hClipData = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, cBytes);
+        if (hClipData == 0) return NULL;
 
         if ((lpClipData = GlobalLock(hClipData)))
         {
@@ -1306,6 +1311,9 @@
 
             GlobalUnlock(lpData->hData32);
             GlobalUnlock(hClipData);
+        } else {
+            GlobalFree(hClipData);
+            hClipData = 0;
         }
     }
 
@@ -1324,7 +1332,7 @@
     UINT i, j;
     UINT size;
     LPWSTR uni_text;
-    LPSTR text, lpstr;
+    LPSTR text, lpstr = NULL;
 
     *lpBytes = 0; /* Assume return has zero bytes */
 
@@ -1333,14 +1341,14 @@
     size = WideCharToMultiByte(CP_UNIXCP, 0, uni_text, -1, NULL, 0, NULL, NULL);
 
     text = HeapAlloc(GetProcessHeap(), 0, size);
-    if (!text)
-       return None;
+    if (!text) goto done;
     WideCharToMultiByte(CP_UNIXCP, 0, uni_text, -1, text, size, NULL, NULL);
 
     /* remove carriage returns */
 
     lpstr = (char*)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, size-- );
-    if(lpstr == NULL) return None;
+    if(lpstr == NULL) goto done;
+
     for(i = 0,j = 0; i < size && text[i]; i++ )
     {
         if( text[i] == '\r' &&
@@ -1351,6 +1359,7 @@
 
     *lpBytes = j; /* Number of bytes in string */
 
+done:
     HeapFree(GetProcessHeap(), 0, text);
     GlobalUnlock(lpData->hData32);