x11/cliprdr: handle empty format names
authorBernhard Miklautz <bernhard.miklautz@thincast.com>
Thu, 2 Jul 2015 13:39:35 +0000 (15:39 +0200)
committerBernhard Miklautz <bernhard.miklautz@thincast.com>
Thu, 2 Jul 2015 13:39:35 +0000 (15:39 +0200)
The recently added strdup checks ignored the fact that format names
can be NULL.

client/X11/xf_cliprdr.c

index 58662fc..1590d11 100644 (file)
@@ -835,16 +835,19 @@ static int xf_cliprdr_server_format_list(CliprdrClientContext* context, CLIPRDR_
        {
                format = &formatList->formats[i];
                clipboard->serverFormats[i].formatId = format->formatId;
-               clipboard->serverFormats[i].formatName = _strdup(format->formatName);
-               if (!clipboard->serverFormats[i].formatName)
+               if (format->formatName)
                {
-                       for (--i; i >= 0; --i)
-                               free(clipboard->serverFormats[i].formatName);
+                       clipboard->serverFormats[i].formatName = _strdup(format->formatName);
+                       if (!clipboard->serverFormats[i].formatName)
+                       {
+                               for (--i; i >= 0; --i)
+                                       free(clipboard->serverFormats[i].formatName);
 
-                       clipboard->numServerFormats = 0;
-                       free(clipboard->serverFormats);
-                       clipboard->serverFormats = NULL;
-                       return -1;
+                               clipboard->numServerFormats = 0;
+                               free(clipboard->serverFormats);
+                               clipboard->serverFormats = NULL;
+                               return -1;
+                       }
                }
        }