summaryrefslogtreecommitdiff
path: root/os
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2007-08-31 13:00:23 -0700
committerEric Anholt <eric@anholt.net>2007-08-31 13:09:45 -0700
commitca82d4bddf235c9b68d51d68636bab40eafb9889 (patch)
tree8441e9fa98d482374245d085454702a1336e7d45 /os
parenta02db0d500cac20d0f0f107d27c064a175018421 (diff)
Bug #7186: Fix an excessive request size limitation that broke big-requests.
MAXBUFSIZE appears to be a leftover of some previous time. Instead, just use maxBigRequestSize when bigreqs are available (limiting buffers to ~16MB). When bigreqs are not available, needed won't be larger than the maximum size of a non-bigreqs request (256kB).
Diffstat (limited to 'os')
-rw-r--r--os/io.c4
-rw-r--r--os/osdep.h3
2 files changed, 3 insertions, 4 deletions
diff --git a/os/io.c b/os/io.c
index 835af54d9..9de75eeaa 100644
--- a/os/io.c
+++ b/os/io.c
@@ -304,12 +304,14 @@ ReadRequestFromClient(ClientPtr client)
*/
oci->lenLastReq = 0;
- if (needed > MAXBUFSIZE)
+#ifdef BIGREQS
+ if (needed > maxBigRequestSize << 2)
{
/* request is too big for us to handle */
YieldControlDeath();
return -1;
}
+#endif
if ((gotnow == 0) ||
((oci->bufptr - oci->buffer + needed) > oci->size))
{
diff --git a/os/osdep.h b/os/osdep.h
index 965436df5..2d455aa67 100644
--- a/os/osdep.h
+++ b/os/osdep.h
@@ -55,9 +55,6 @@ SOFTWARE.
#define BOTIMEOUT 200 /* in milliseconds */
#define BUFSIZE 4096
#define BUFWATERMARK 8192
-#ifndef MAXBUFSIZE
-#define MAXBUFSIZE (1 << 22)
-#endif
#include <X11/Xdmcp.h>