From b6a799e5d07a998a688b5ef43690096264095e63 Mon Sep 17 00:00:00 2001 From: Bernhard Miklautz Date: Thu, 2 Jul 2015 15:39:35 +0200 Subject: [PATCH] x11/cliprdr: handle empty format names The recently added strdup checks ignored the fact that format names can be NULL. --- client/X11/xf_cliprdr.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/client/X11/xf_cliprdr.c b/client/X11/xf_cliprdr.c index 58662fc..1590d11 100644 --- a/client/X11/xf_cliprdr.c +++ b/client/X11/xf_cliprdr.c @@ -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; + } } } -- 2.7.4