diff --git a/engine/common/net_ws.c b/engine/common/net_ws.c index 49738d3e..752e7cc5 100644 --- a/engine/common/net_ws.c +++ b/engine/common/net_ws.c @@ -2200,6 +2200,8 @@ HTTP downloader ================================================= */ +#define MAX_HTTP_BUFFER_SIZE (BIT( 13 )) + typedef struct httpserver_s { char host[256]; @@ -2240,7 +2242,7 @@ typedef struct httpfile_s qboolean process; // query or response - char buf[BUFSIZ+1]; + char buf[MAX_HTTP_BUFFER_SIZE+1]; int header_size, query_length, bytes_sent; } httpfile_t; @@ -2385,18 +2387,18 @@ process incoming data */ static qboolean HTTP_ProcessStream( httpfile_t *curfile ) { - char buf[BUFSIZ+1]; + char buf[sizeof( curfile->buf )]; char *begin = 0; int res; - if( curfile->header_size >= BUFSIZ ) + if( curfile->header_size >= sizeof( buf )) { - Con_Reportf( S_ERROR "Header to big\n"); + Con_Reportf( S_ERROR "Header too big, the size is %s\n", curfile->header_size ); HTTP_FreeFile( curfile, true ); return false; } - while( ( res = recv( curfile->socket, buf, BUFSIZ - curfile->header_size, 0 )) > 0) // if we got there, we are receiving data + while( ( res = recv( curfile->socket, buf, sizeof( buf ) - curfile->header_size, 0 )) > 0) // if we got there, we are receiving data { curfile->blocktime = 0;