evas/cserve2: Fix race condition on font load / socket fail
authorJean-Philippe Andre <jp.andre@samsung.com>
Fri, 2 Aug 2013 06:16:24 +0000 (15:16 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Mon, 28 Oct 2013 06:47:13 +0000 (15:47 +0900)
If the client exits while the server is loading fonts,
the font entry objects are accessed after being freed.

Note: This is not a proper fix. The race condition should still
be fixed, but delaying client deletion a bit might help for a while...

src/bin/evas/evas_cserve2_messages.c

index e5cb1b7..168bd72 100644 (file)
@@ -172,9 +172,6 @@ cserve2_client_send(Client *client, const void *data, size_t size)
         // so we must close the connection to the client and remove
         // its references inside our cache.
         WRN("Error on socket with client %d: %s", client->id, strerror(errno));
-        if (client->msg.reading)
-          _client_msg_free(client);
-        cserve2_client_del(client);
         return sent;
      }
    if (sent < 0)