From 39945fc94c256c4e683ecbdf0b63eb0af8be7044 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 4 Jan 2020 11:41:35 +0100 Subject: curl -w: handle a blank input file correctly Previously it would end up with an uninitialized memory buffer that would lead to a crash or junk getting output. Added test 1271 to verify. Reported-by: Brian Carpenter --- src/tool_paramhlp.c | 4 ++-- tests/data/Makefile.inc | 2 +- tests/data/test1271 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 tests/data/test1271 diff --git a/src/tool_paramhlp.c b/src/tool_paramhlp.c index de1b26d70..67702ebe2 100644 --- a/src/tool_paramhlp.c +++ b/src/tool_paramhlp.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2019, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2020, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -65,7 +65,7 @@ ParameterError file2string(char **bufp, FILE *file) size_t alloc_needed; char buffer[256]; size_t stringlen = 0; - string = malloc(alloc); + string = calloc(1, alloc); if(!string) return PARAM_NO_MEM; diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index edfa61b0e..09cb05706 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -143,7 +143,7 @@ test1236 test1237 test1238 test1239 test1240 test1241 test1242 test1243 \ test1244 test1245 test1246 test1247 test1248 test1249 test1250 test1251 \ test1252 test1253 test1254 test1255 test1256 test1257 test1258 test1259 \ test1260 test1261 test1262 test1263 test1264 test1265 test1266 test1267 \ -test1268 test1269 test1270 \ +test1268 test1269 test1270 test1271 \ \ test1280 test1281 test1282 test1283 test1284 test1285 test1286 test1287 \ test1288 test1289 test1290 test1291 test1292 test1293 \ diff --git a/tests/data/test1271 b/tests/data/test1271 new file mode 100644 index 000000000..687a6a979 --- /dev/null +++ b/tests/data/test1271 @@ -0,0 +1,48 @@ + + + +HTTP +HTTP GET +--write-out + + + +# Server-side + + +HTTP/1.1 200 This is a weirdo text message swsclose +Content-Length: 4 +Connection: close + +Moo + + + +# Client-side + + +http + + +--write-out from file with empty file + + +http://%HOSTIP:%HTTPPORT/we/want/our/1271 -w @log/blank1271 + + + + + +# Verify data after the test has been "shot" + + +^User-Agent:.* + + +GET /we/want/our/1271 HTTP/1.1 +Host: %HOSTIP:%HTTPPORT +Accept: */* + + + + -- cgit v1.2.1