curl: check for end of input in writeout backslash handling

Reported-by: Brian Carpenter

Added test 1442 to verify
This commit is contained in:
Daniel Stenberg 2017-03-24 10:14:21 +01:00
parent d14563454a
commit 8e65877870
3 changed files with 38 additions and 3 deletions

View File

@ -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);

View File

@ -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 \

35
tests/data/test1442 Normal file
View File

@ -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>