summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2007-09-30 22:40:24 +0000
committerDaniel Stenberg <daniel@haxx.se>2007-09-30 22:40:24 +0000
commitec08e2f9f24da5974be1ab222c5703fd9fb3722f (patch)
treeefe5f2f8496623b8bdce46f3d4103a246de2aaba /tests
parent38dd0ede9ddcf7491792e7edd98665841667ae67 (diff)
downloadcurl-ec08e2f9f24da5974be1ab222c5703fd9fb3722f.tar.gz
Alex Fishman reported a curl_easy_escape() problem that was made the
function do wrong on all input bytes that are >= 0x80 (decimal 128) due to a signed / unsigned mistake in the code. I fixed it and added test case 543 to verify.
Diffstat (limited to 'tests')
-rw-r--r--tests/data/Makefile.am2
-rw-r--r--tests/data/test54335
-rw-r--r--tests/libtest/Makefile.am4
-rw-r--r--tests/libtest/lib543.c32
4 files changed, 71 insertions, 2 deletions
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 22ddb7f2c..994e5dfd1 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -44,4 +44,4 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
test409 test613 test614 test700 test701 test702 test704 test705 test703 \
test706 test707 test350 test351 test352 test353 test289 test540 test354 \
test231 test1000 test1001 test1002 test1003 test1004 test1005 test1006 \
- test615 test1007 test541 test1010 test1011 test1012
+ test615 test1007 test541 test1010 test1011 test1012 test542 test543
diff --git a/tests/data/test543 b/tests/data/test543
new file mode 100644
index 000000000..455633037
--- /dev/null
+++ b/tests/data/test543
@@ -0,0 +1,35 @@
+<testcase>
+<info>
+<keywords>
+curl_easy_escape
+</keywords>
+</info>
+# Server-side
+
+# Client-side
+<client>
+<server>
+none
+</server>
+<tool>
+lib543
+</tool>
+ <name>
+curl_easy_escape
+ </name>
+ <command>
+-
+</command>
+
+</client>
+
+# Verify data after the test has been "shot"
+#
+# There's no MTDM in the protocol here since this code doesn't ask for the
+# time/date of the file
+<verify>
+<stdout>
+%9C%26K%3DI%04%A1%01%E0%D8%7C%20%B7%EFS%29%FA%1DW%E1
+</stdout>
+</verify>
+</testcase>
diff --git a/tests/libtest/Makefile.am b/tests/libtest/Makefile.am
index 395564a6e..f0fb24ed0 100644
--- a/tests/libtest/Makefile.am
+++ b/tests/libtest/Makefile.am
@@ -47,7 +47,7 @@ SUPPORTFILES = first.c test.h
noinst_PROGRAMS = lib500 lib501 lib502 lib503 lib504 lib505 lib506 \
lib507 lib508 lib509 lib510 lib511 lib512 lib513 lib514 lib515 lib516 \
lib517 lib518 lib519 lib520 lib521 lib523 lib524 lib525 lib526 lib527 \
- lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542
+ lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542 lib543
# Dependencies (may need to be overriden)
LDADD = $(LIBDIR)/libcurl.la
@@ -130,3 +130,5 @@ lib540_SOURCES = lib540.c $(SUPPORTFILES)
lib541_SOURCES = lib541.c $(SUPPORTFILES)
lib542_SOURCES = lib542.c $(SUPPORTFILES)
+
+lib543_SOURCES = lib543.c $(SUPPORTFILES)
diff --git a/tests/libtest/lib543.c b/tests/libtest/lib543.c
new file mode 100644
index 000000000..2e930d2d6
--- /dev/null
+++ b/tests/libtest/lib543.c
@@ -0,0 +1,32 @@
+/*****************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * $Id$
+ *
+ * Based on Alex Fishman's bug report on September 30, 2007
+ */
+
+#include "setup.h"
+#include "test.h"
+
+int test(char *URL)
+{
+ unsigned char a[] = {0x9c, 0x26, 0x4b, 0x3d, 0x49, 0x4, 0xa1, 0x1,
+ 0xe0, 0xd8, 0x7c, 0x20, 0xb7, 0xef, 0x53, 0x29, 0xfa,
+ 0x1d, 0x57, 0xe1};
+
+ CURL* easy = curl_easy_init();
+ char* s = curl_easy_escape(easy, (char*)a, sizeof(a));
+ (void)URL;
+
+ printf("%s\n", s);
+
+ curl_free(s);
+ curl_easy_cleanup(easy);
+
+ return 0;
+}