curl_fnmatch, servers: drop local macros in favour of sizeof()

Closes #17898
This commit is contained in:
Viktor Szakats 2025-07-11 13:48:13 +02:00
parent 0260e8465a
commit 8ae93a95f8
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
3 changed files with 21 additions and 25 deletions

View file

@ -74,14 +74,13 @@ typedef enum {
static int parsekeyword(const unsigned char **pattern, unsigned char *charset)
{
parsekey_state state = CURLFNM_PKW_INIT;
#define KEYLEN 10
char keyword[KEYLEN] = { 0 };
int i;
char keyword[10] = { 0 };
size_t i;
const unsigned char *p = *pattern;
bool found = FALSE;
for(i = 0; !found; i++) {
char c = (char)*p++;
if(i >= KEYLEN)
if(i >= sizeof(keyword))
return SETCHARSET_FAIL;
switch(state) {
case CURLFNM_PKW_INIT:

View file

@ -33,9 +33,6 @@
#include <netinet/tcp.h> /* for TCP_NODELAY */
#endif
#undef REQBUFSIZ
#define REQBUFSIZ 150000
static long rtspd_prevtestno = -1; /* previous test number we served */
static long rtspd_prevpartno = -1; /* previous part number we served */
static bool rtspd_prevbounce = FALSE; /* instructs the server to override the
@ -59,7 +56,7 @@ typedef enum {
((p)[3] = (char)((l) & 0xFF)))
struct rtspd_httprequest {
char reqbuf[REQBUFSIZ]; /* buffer area for the incoming request */
char reqbuf[150000]; /* buffer area for the incoming request */
size_t checkindex; /* where to start checking of the request */
size_t offset; /* size of the incoming request */
long testno; /* test number found in the request */
@ -621,7 +618,7 @@ static int rtspd_get_request(curl_socket_t sock, struct rtspd_httprequest *req)
/*** end of httprequest init ***/
while(!done_processing && (req->offset < REQBUFSIZ-1)) {
while(!done_processing && (req->offset < sizeof(req->reqbuf)-1)) {
if(pipereq_length && pipereq) {
memmove(reqbuf, pipereq, pipereq_length);
got = curlx_uztosz(pipereq_length);
@ -634,7 +631,8 @@ static int rtspd_get_request(curl_socket_t sock, struct rtspd_httprequest *req)
client wants to send! */
got = sread(sock, reqbuf + req->offset, req->cl);
else
got = sread(sock, reqbuf + req->offset, REQBUFSIZ-1 - req->offset);
got = sread(sock, reqbuf + req->offset,
sizeof(req->reqbuf)-1 - req->offset);
}
if(got_exit_signal)
return 1;
@ -669,16 +667,16 @@ static int rtspd_get_request(curl_socket_t sock, struct rtspd_httprequest *req)
}
}
if((req->offset == REQBUFSIZ-1) && (got > 0)) {
if((req->offset == sizeof(req->reqbuf)-1) && (got > 0)) {
logmsg("Request would overflow buffer, closing connection");
/* dump request received so far to external file anyway */
reqbuf[REQBUFSIZ-1] = '\0';
reqbuf[sizeof(req->reqbuf)-1] = '\0';
fail = 1;
}
else if(req->offset > REQBUFSIZ-1) {
else if(req->offset > sizeof(req->reqbuf)-1) {
logmsg("Request buffer overflow, closing connection");
/* dump request received so far to external file anyway */
reqbuf[REQBUFSIZ-1] = '\0';
reqbuf[sizeof(req->reqbuf)-1] = '\0';
fail = 1;
}
else

View file

@ -37,9 +37,6 @@
static bool use_gopher = FALSE;
static bool is_proxy = FALSE;
#undef REQBUFSIZ
#define REQBUFSIZ (2*1024*1024)
#define MAX_SLEEP_TIME_MS 250
static long sws_prevtestno = -1; /* previous test number we served */
@ -54,7 +51,7 @@ static bool sws_prevbounce = FALSE; /* instructs the server to override the
#define RCMD_STREAM 2 /* told to stream */
struct sws_httprequest {
char reqbuf[REQBUFSIZ]; /* buffer area for the incoming request */
char reqbuf[2*1024*1024]; /* buffer area for the incoming request */
bool connect_request; /* if a CONNECT */
unsigned short connect_port; /* the port number CONNECT used */
size_t checkindex; /* where to start checking of the request */
@ -815,7 +812,8 @@ static int sws_get_request(curl_socket_t sock, struct sws_httprequest *req)
if(req->open) {
logmsg("wait for websocket traffic");
do {
got = sread(sock, reqbuf + req->offset, REQBUFSIZ - req->offset);
got = sread(sock, reqbuf + req->offset,
sizeof(req->reqbuf) - req->offset);
if(got > 0) {
req->offset += got;
logmsg("Got %zu bytes from client", got);
@ -866,7 +864,7 @@ static int sws_get_request(curl_socket_t sock, struct sws_httprequest *req)
return -1;
}
if(req->offset >= REQBUFSIZ-1) {
if(req->offset >= sizeof(req->reqbuf)-1) {
/* buffer is already full; do nothing */
overflow = 1;
}
@ -877,7 +875,8 @@ static int sws_get_request(curl_socket_t sock, struct sws_httprequest *req)
client wants to send! */
got = sread(sock, reqbuf + req->offset, req->cl);
else
got = sread(sock, reqbuf + req->offset, REQBUFSIZ-1 - req->offset);
got = sread(sock, reqbuf + req->offset,
sizeof(req->reqbuf)-1 - req->offset);
if(got_exit_signal)
return -1;
@ -911,16 +910,16 @@ static int sws_get_request(curl_socket_t sock, struct sws_httprequest *req)
return -1;
}
if(overflow || (req->offset == REQBUFSIZ-1 && got > 0)) {
if(overflow || (req->offset == sizeof(req->reqbuf)-1 && got > 0)) {
logmsg("Request would overflow buffer, closing connection");
/* dump request received so far to external file anyway */
reqbuf[REQBUFSIZ-1] = '\0';
reqbuf[sizeof(req->reqbuf)-1] = '\0';
fail = 1;
}
else if(req->offset > REQBUFSIZ-1) {
else if(req->offset > sizeof(req->reqbuf)-1) {
logmsg("Request buffer overflow, closing connection");
/* dump request received so far to external file anyway */
reqbuf[REQBUFSIZ-1] = '\0';
reqbuf[sizeof(req->reqbuf)-1] = '\0';
fail = 1;
}
else