Skip to content

Commit 4abcba8

Browse files
committed
Make redbean Fetch() support longer responses
Fixes #1315
1 parent dc1afc9 commit 4abcba8

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

test/net/http/parsehttpmessage_test.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
│ PERFORMANCE OF THIS SOFTWARE. │
1818
╚─────────────────────────────────────────────────────────────────────────────*/
1919
#include "libc/errno.h"
20+
#include "libc/intrin/kprintf.h"
2021
#include "libc/log/check.h"
2122
#include "libc/mem/gc.h"
2223
#include "libc/mem/mem.h"
@@ -434,6 +435,24 @@ TEST(ParseHttpResponse, testHttp100) {
434435
EXPECT_EQ(10, req->version);
435436
}
436437

438+
TEST(ParseHttpMessage, issue1315) {
439+
static const char m[] = "\
440+
HTTP/1.1 200 OK\r\n\
441+
padding: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n\
442+
Date: Sat, 12 Oct 2024 22:50:55 GMT\r\n\
443+
Server: redbean/3.0.0\r\n\
444+
Connection: close\r\n\
445+
Content-Type: text/html; charset=utf-8\r\n\
446+
Referrer-Policy: no-referrer-when-downgrade\r\n\
447+
Content-Length: 12\r\n\
448+
\r\n";
449+
InitHttpMessage(req, kHttpResponse);
450+
EXPECT_EQ(0, ParseHttpMessage(req, m, strlen(m) - 1, strlen(m)));
451+
EXPECT_EQ(200, req->status);
452+
}
453+
454+
////////////////////////////////////////////////////////////////////////////////
455+
437456
void DoTiniestHttpRequest(void) {
438457
static const char m[] = "\
439458
GET /\r\n\

tool/net/fetch.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ static int LuaFetch(lua_State *L) {
378378
WARNF("(ftch) HTTP client %s error", "EOF headers");
379379
goto TransportError;
380380
}
381-
rc = ParseHttpMessage(&msg, inbuf.p, inbuf.n, inbuf.c);
381+
rc = ParseHttpMessage(&msg, inbuf.p, inbuf.n, SHRT_MAX);
382382
if (rc == -1) {
383383
WARNF("(ftch) HTTP client %s error", "ParseHttpMessage");
384384
goto TransportError;

0 commit comments

Comments
 (0)