diff options
author | Daniel Stenberg <daniel@haxx.se> | 2017-03-24 10:14:21 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-03-25 23:48:57 +0100 |
commit | 8e65877870c1fac920b65219adec720df810aab9 (patch) | |
tree | a7e865cf2d09539b75f7604ce84ba624968616a7 | |
parent | d14563454a5eaedafd1e8a2967ee3df46015edf4 (diff) | |
download | curl-8e65877870c1fac920b65219adec720df810aab9.tar.gz |
curl: check for end of input in writeout backslash handling
Reported-by: Brian Carpenter
Added test 1442 to verify
-rw-r--r-- | src/tool_writeout.c | 4 | ||||
-rw-r--r-- | tests/data/Makefile.inc | 2 | ||||
-rw-r--r-- | tests/data/test1442 | 35 |
3 files changed, 38 insertions, 3 deletions
diff --git a/src/tool_writeout.c b/src/tool_writeout.c index 7843182f2..5d92bd278 100644 --- a/src/tool_writeout.c +++ b/src/tool_writeout.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -341,7 +341,7 @@ void ourWriteOut(CURL *curl, struct OutStruct *outs, const char *writeinfo) } } } - else if('\\' == *ptr) { + else if('\\' == *ptr && ptr[1]) { switch(ptr[1]) { case 'r': fputc('\r', stream); diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index a6a06b81f..edeb9000c 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -153,7 +153,7 @@ test1408 test1409 test1410 test1411 test1412 test1413 test1414 test1415 \ test1416 test1417 test1418 test1419 test1420 test1421 test1422 test1423 \ test1424 \ test1428 test1429 test1430 test1431 test1432 test1433 test1434 test1435 \ -test1436 test1437 test1438 test1439 test1440 test1441 \ +test1436 test1437 test1438 test1439 test1440 test1441 test1442 \ \ test1500 test1501 test1502 test1503 test1504 test1505 test1506 test1507 \ test1508 test1509 test1510 test1511 test1512 test1513 test1514 test1515 \ diff --git a/tests/data/test1442 b/tests/data/test1442 new file mode 100644 index 000000000..255a4c9ff --- /dev/null +++ b/tests/data/test1442 @@ -0,0 +1,35 @@ +<testcase> +<info> +<keywords> +--write-out +FILE +</keywords> +</info> +# Server-side +<reply> +</reply> + +# Client-side +<client> +<server> +file +</server> + +<name> +Check --write-out with trailing \ +</name> +<command> +file://localhost/%PWD/log/non-existent-file.txt --write-out '\' +</command> +</client> + +# Verify data +<verify> +<errorcode> +37 +</errorcode> +<stdout nonewline="yes"> +\ +</stdout> +</verify> +</testcase> |