Subject: libvncserver: Check malloc() return value on client->server ClientCutText message.
From: Martin T. H. Sandsmark <[email-masked]>
Date: Tue, 23 Sep 2014 20:46:27 +0000

---
libvncserver: Check malloc() return value on client->server ClientCutText message.

Client can send up to 2**32-1 bytes of text, and such a large allocation
is likely to fail in case of high memory pressure. This would in a
server crash (write at address 0).

Upstream commit: 6037a9074d52b1963c97cb28ea1096c7c14cbf28
---

--- a/libvncserver/rfbserver.c
+++ b/libvncserver/rfbserver.c
@@ -2404,6 +2404,12 @@
 
 	str = (char *)malloc(msg.cct.length);
 
+    if (str == NULL) {
+        rfbLogPerror("rfbProcessClientNormalMessage: not enough memory");
+        rfbCloseClient(cl);
+        return;
+    }
+
 	if ((n = rfbReadExact(cl, str, msg.cct.length)) <= 0) {
 	    if (n != 0)
 	        rfbLogPerror("rfbProcessClientNormalMessage: read");