From 9f8bdd0eae5c1d441d9d901a7cf917a8ee215c7f Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 11 Apr 2025 17:10:37 +0200 Subject: [PATCH] tool_parsecfg: make get_line handle lines ending on the buffer boundary Add test 743 to verify. Fixes #17030 Reported-by: Marius Kleidl Closes #17031 --- src/tool_parsecfg.c | 2 ++ tests/data/Makefile.am | 2 +- tests/data/test743 | 60 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 tests/data/test743 diff --git a/src/tool_parsecfg.c b/src/tool_parsecfg.c index 7a23f35944..b80b867cc8 100644 --- a/src/tool_parsecfg.c +++ b/src/tool_parsecfg.c @@ -312,6 +312,8 @@ static bool get_line(FILE *input, struct dynbuf *buf, bool *error) else if(feof(input)) return TRUE; /* all good */ } + else if(curlx_dyn_len(buf)) + return TRUE; /* all good */ else break; } diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index bb316e38d4..56845230a9 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -107,7 +107,7 @@ test700 test701 test702 test703 test704 test705 test706 test707 test708 \ test709 test710 test711 test712 test713 test714 test715 test716 test717 \ test718 test719 test720 test721 test722 test723 test724 test725 test726 \ test727 test728 test729 test730 test731 test732 test733 test734 test735 \ -test736 test737 test738 test739 test740 test741 test742 \ +test736 test737 test738 test739 test740 test741 test742 test743 \ \ test780 test781 test782 test783 test784 test785 test786 test787 test788 \ test789 test790 test791 \ diff --git a/tests/data/test743 b/tests/data/test743 new file mode 100644 index 0000000000..fa86a13883 --- /dev/null +++ b/tests/data/test743 @@ -0,0 +1,60 @@ + + + +HTTP +--config + + + +# +# Server-side + + +HTTP/1.1 200 OK +Date: Tue, 09 Nov 2010 14:49:00 GMT +Server: test-server/fake +Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT +ETag: "21025-dc7-39462498" +Accept-Ranges: bytes +Content-Length: 6 +Connection: close +Content-Type: text/html +Funny-head: yesyes + +-foo- + + + +# +# Client-side + + +http + + +--config with a 127 byte line + + +-A pointless +data = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + + +http://%HOSTIP:%HTTPPORT/%TESTNUMBER -K %LOGDIR/config + + + +# +# Verify data after the test has been "shot" + + +POST /%TESTNUMBER HTTP/1.1 +Host: %HOSTIP:%HTTPPORT +User-Agent: pointless +Accept: */* +Content-Length: 118 +Content-Type: application/x-www-form-urlencoded + +%repeat[118 x x]% + + + -- 2.47.2