Fixed double free
authorakallabeth <akallabeth@posteo.net>
Mon, 25 May 2020 12:03:12 +0000 (14:03 +0200)
committerArmin Novak <armin.novak@thincast.com>
Mon, 22 Jun 2020 10:12:08 +0000 (12:12 +0200)
(cherry picked from commit 6d86e20e1e7caaab4f0c7f89e36d32914dbccc52)

server/shadow/shadow_server.c

index 30a63c9..259f22e 100644 (file)
@@ -586,14 +586,19 @@ int shadow_server_start(rdpShadowServer* server)
                char** list = CommandLineParseCommaSeparatedValuesEx(NULL, server->ipcSocket, &count);
                if (!list || (count <= 1))
                {
-                       free(list);
                        if (server->ipcSocket == NULL)
                        {
                                if (!open_port(server, NULL))
+                               {
+                                       free(list);
                                        return -1;
+                               }
                        }
                        else
+                       {
+                               free(list);
                                return -1;
+                       }
                }
 
                for (x = 1; x < count; x++)