--- ./vncviewer/corre.c.origin	2023-07-24 14:52:20.597804055 +0000
+++ ./vncviewer/corre.c	2023-07-24 14:53:08.240504677 +0000
@@ -56,7 +56,7 @@
     XChangeGC(dpy, gc, GCForeground, &gcv);
     XFillRectangle(dpy, desktopWin, gc, rx, ry, rw, rh);
 
-    if (!ReadFromRFBServer(buffer, hdr.nSubrects * (4 + (BPP / 8))))
+    if (hdr.nSubrects > BUFFER_SIZE / (4 + (BPP / 8)) || !ReadFromRFBServer(buffer, hdr.nSubrects * (4 + (BPP / 8)0)))
 	return False;
 
     ptr = (CARD8 *)buffer;
