|
|
c260e0 |
From 77ed36a0e1f604957054a2c25b6556acbd1c9f29 Mon Sep 17 00:00:00 2001
|
|
|
c260e0 |
From: Daniel Stenberg <daniel@haxx.se>
|
|
|
c260e0 |
Date: Thu, 25 Dec 2014 23:55:03 +0100
|
|
|
c260e0 |
Subject: [PATCH 1/2] url-parsing: reject CRLFs within URLs
|
|
|
c260e0 |
|
|
|
c260e0 |
Bug: http://curl.haxx.se/docs/adv_20150108B.html
|
|
|
c260e0 |
Reported-by: Andrey Labunets
|
|
|
c260e0 |
|
|
|
c260e0 |
Upstream-commit: 178bd7db34f77e020fb8562890c5625ccbd67093
|
|
|
c260e0 |
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
|
|
c260e0 |
---
|
|
|
c260e0 |
lib/url.c | 7 +++++++
|
|
|
c260e0 |
1 file changed, 7 insertions(+)
|
|
|
c260e0 |
|
|
|
c260e0 |
diff --git a/lib/url.c b/lib/url.c
|
|
|
c260e0 |
index 0aa5a33..736d5d9 100644
|
|
|
c260e0 |
--- a/lib/url.c
|
|
|
c260e0 |
+++ b/lib/url.c
|
|
|
c260e0 |
@@ -3599,6 +3599,13 @@ static CURLcode parseurlandfillconn(struct SessionHandle *data,
|
|
|
c260e0 |
|
|
|
c260e0 |
*prot_missing = FALSE;
|
|
|
c260e0 |
|
|
|
c260e0 |
+ /* We might pass the entire URL into the request so we need to make sure
|
|
|
c260e0 |
+ * there are no bad characters in there.*/
|
|
|
c260e0 |
+ if(strpbrk(data->change.url, "\r\n")) {
|
|
|
c260e0 |
+ failf(data, "Illegal characters found in URL");
|
|
|
c260e0 |
+ return CURLE_URL_MALFORMAT;
|
|
|
c260e0 |
+ }
|
|
|
c260e0 |
+
|
|
|
c260e0 |
/*************************************************************
|
|
|
c260e0 |
* Parse the URL.
|
|
|
c260e0 |
*
|
|
|
c260e0 |
--
|
|
|
c260e0 |
2.1.0
|
|
|
c260e0 |
|
|
|
c260e0 |
|
|
|
c260e0 |
From 916b5628b33bbc8bcad0f4b491089ba555c3dac6 Mon Sep 17 00:00:00 2001
|
|
|
c260e0 |
From: Daniel Stenberg <daniel@haxx.se>
|
|
|
c260e0 |
Date: Thu, 25 Dec 2014 23:51:43 +0100
|
|
|
c260e0 |
Subject: [PATCH 2/2] tests: make sure CRLFs can't be used in URLs passed to
|
|
|
c260e0 |
proxy
|
|
|
c260e0 |
|
|
|
c260e0 |
Bug: http://curl.haxx.se/docs/adv_20150108B.html
|
|
|
c260e0 |
|
|
|
c260e0 |
Upstream-commit: 3df8e78860d3a3d3cf95252bd2b4ad5fd53360cd
|
|
|
c260e0 |
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
|
|
c260e0 |
---
|
|
|
c260e0 |
tests/data/Makefile.am | 2 +-
|
|
|
c260e0 |
tests/data/Makefile.in | 2 +-
|
|
|
c260e0 |
tests/data/test1529 | 43 ++++++++++++++++++++++++++
|
|
|
c260e0 |
tests/libtest/Makefile.in | 77 +++++++++++++++++++++++++++++++++++++++++++++-
|
|
|
c260e0 |
tests/libtest/Makefile.inc | 7 ++++-
|
|
|
c260e0 |
tests/libtest/lib1529.c | 59 +++++++++++++++++++++++++++++++++++
|
|
|
c260e0 |
6 files changed, 186 insertions(+), 4 deletions(-)
|
|
|
c260e0 |
create mode 100644 tests/data/test1529
|
|
|
c260e0 |
create mode 100644 tests/libtest/lib1529.c
|
|
|
c260e0 |
|
|
|
c260e0 |
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
|
|
|
c260e0 |
index 0a767b3..0bb8ffd 100644
|
|
|
c260e0 |
--- a/tests/data/Makefile.am
|
|
|
c260e0 |
+++ b/tests/data/Makefile.am
|
|
|
c260e0 |
@@ -94,7 +94,7 @@ test1387 test1388 test1389 test1390 test1391 test1392 test1393 \
|
|
|
c260e0 |
test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 \
|
|
|
c260e0 |
test1408 test1409 test1410 test1411 test1412 test1413 test1415 \
|
|
|
c260e0 |
test1500 test1501 test1502 test1503 test1504 test1505 test1506 test1507 \
|
|
|
c260e0 |
-test1508 \
|
|
|
c260e0 |
+test1508 test1529 \
|
|
|
c260e0 |
test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \
|
|
|
c260e0 |
test2008 test2009 test2010 test2011 test2012 test2013 test2014 test2015 \
|
|
|
c260e0 |
test2016 test2017 test2018 test2019 test2020 test2021 test2022 \
|
|
|
c260e0 |
diff --git a/tests/data/Makefile.in b/tests/data/Makefile.in
|
|
|
c260e0 |
index 2256422..e73ca96 100644
|
|
|
c260e0 |
--- a/tests/data/Makefile.in
|
|
|
c260e0 |
+++ b/tests/data/Makefile.in
|
|
|
c260e0 |
@@ -358,7 +358,7 @@ test1387 test1388 test1389 test1390 test1391 test1392 test1393 \
|
|
|
c260e0 |
test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 \
|
|
|
c260e0 |
test1408 test1409 test1410 test1411 test1412 test1413 test1415 \
|
|
|
c260e0 |
test1500 test1501 test1502 test1503 test1504 test1505 test1506 test1507 \
|
|
|
c260e0 |
-test1508 \
|
|
|
c260e0 |
+test1508 test1529 \
|
|
|
c260e0 |
test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \
|
|
|
c260e0 |
test2008 test2009 test2010 test2011 test2012 test2013 test2014 test2015 \
|
|
|
c260e0 |
test2016 test2017 test2018 test2019 test2020 test2021 test2022 \
|
|
|
c260e0 |
diff --git a/tests/data/test1529 b/tests/data/test1529
|
|
|
c260e0 |
new file mode 100644
|
|
|
c260e0 |
index 0000000..33df268
|
|
|
c260e0 |
--- /dev/null
|
|
|
c260e0 |
+++ b/tests/data/test1529
|
|
|
c260e0 |
@@ -0,0 +1,43 @@
|
|
|
c260e0 |
+<testcase>
|
|
|
c260e0 |
+<info>
|
|
|
c260e0 |
+<keywords>
|
|
|
c260e0 |
+HTTP
|
|
|
c260e0 |
+HTTP GET
|
|
|
c260e0 |
+HTTP proxy
|
|
|
c260e0 |
+</keywords>
|
|
|
c260e0 |
+</info>
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+# Server-side
|
|
|
c260e0 |
+<reply>
|
|
|
c260e0 |
+<connect>
|
|
|
c260e0 |
+HTTP/1.1 200 OK
|
|
|
c260e0 |
+We-are: good
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+</connect>
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+</reply>
|
|
|
c260e0 |
+# Client-side
|
|
|
c260e0 |
+<client>
|
|
|
c260e0 |
+<server>
|
|
|
c260e0 |
+http
|
|
|
c260e0 |
+http-proxy
|
|
|
c260e0 |
+</server>
|
|
|
c260e0 |
+<tool>
|
|
|
c260e0 |
+lib1529
|
|
|
c260e0 |
+</tool>
|
|
|
c260e0 |
+ <name>
|
|
|
c260e0 |
+HTTP request-injection in URL sent over proxy
|
|
|
c260e0 |
+ </name>
|
|
|
c260e0 |
+ <command>
|
|
|
c260e0 |
+ "http://the.old.moo:%HTTPPORT/1529" %HOSTIP:%PROXYPORT
|
|
|
c260e0 |
+</command>
|
|
|
c260e0 |
+</client>
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+# it should be detected and an error should be reported
|
|
|
c260e0 |
+<verify>
|
|
|
c260e0 |
+# 3 == CURLE_URL_MALFORMAT
|
|
|
c260e0 |
+<errorcode>
|
|
|
c260e0 |
+3
|
|
|
c260e0 |
+</errorcode>
|
|
|
c260e0 |
+</verify>
|
|
|
c260e0 |
+</testcase>
|
|
|
c260e0 |
diff --git a/tests/libtest/Makefile.in b/tests/libtest/Makefile.in
|
|
|
c260e0 |
index ed4d69f..124a276 100644
|
|
|
c260e0 |
--- a/tests/libtest/Makefile.in
|
|
|
c260e0 |
+++ b/tests/libtest/Makefile.in
|
|
|
c260e0 |
@@ -86,7 +86,7 @@ noinst_PROGRAMS = chkhostname$(EXEEXT) libauthretry$(EXEEXT) \
|
|
|
c260e0 |
lib599$(EXEEXT) lib1500$(EXEEXT) lib1501$(EXEEXT) \
|
|
|
c260e0 |
lib1502$(EXEEXT) lib1503$(EXEEXT) lib1504$(EXEEXT) \
|
|
|
c260e0 |
lib1505$(EXEEXT) lib1506$(EXEEXT) lib1507$(EXEEXT) \
|
|
|
c260e0 |
- lib1508$(EXEEXT)
|
|
|
c260e0 |
+ lib1508$(EXEEXT) lib1529$(EXEEXT)
|
|
|
c260e0 |
subdir = tests/libtest
|
|
|
c260e0 |
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
|
|
c260e0 |
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
|
|
|
c260e0 |
@@ -188,6 +188,13 @@ am_lib1508_OBJECTS = lib1508-lib1508.$(OBJEXT) $(am__objects_151) \
|
|
|
c260e0 |
$(am__objects_152) $(am__objects_153)
|
|
|
c260e0 |
lib1508_OBJECTS = $(am_lib1508_OBJECTS)
|
|
|
c260e0 |
lib1508_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
|
|
c260e0 |
+am__objects_X60 = lib1529-first.$(OBJEXT)
|
|
|
c260e0 |
+am__objects_X61 = lib1529-testutil.$(OBJEXT)
|
|
|
c260e0 |
+am__objects_X62 = ../../lib/lib1529-warnless.$(OBJEXT)
|
|
|
c260e0 |
+am_lib1529_OBJECTS = lib1529-lib1529.$(OBJEXT) $(am__objects_X60) \
|
|
|
c260e0 |
+ $(am__objects_X61) $(am__objects_X62)
|
|
|
c260e0 |
+lib1529_OBJECTS = $(am_lib1529_OBJECTS)
|
|
|
c260e0 |
+lib1529_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
|
|
c260e0 |
am__objects_21 = lib500-first.$(OBJEXT)
|
|
|
c260e0 |
am__objects_22 = lib500-testutil.$(OBJEXT)
|
|
|
c260e0 |
am__objects_23 = lib500-testtrace.$(OBJEXT)
|
|
|
c260e0 |
@@ -648,6 +655,7 @@ SOURCES = $(libhostname_la_SOURCES) $(chkhostname_SOURCES) \
|
|
|
c260e0 |
$(lib1500_SOURCES) $(lib1501_SOURCES) $(lib1502_SOURCES) \
|
|
|
c260e0 |
$(lib1503_SOURCES) $(lib1504_SOURCES) $(lib1505_SOURCES) \
|
|
|
c260e0 |
$(lib1506_SOURCES) $(lib1507_SOURCES) $(lib1508_SOURCES) \
|
|
|
c260e0 |
+ $(lib1529_SOURCES) \
|
|
|
c260e0 |
$(lib500_SOURCES) $(lib501_SOURCES) \
|
|
|
c260e0 |
$(lib502_SOURCES) $(lib503_SOURCES) $(lib504_SOURCES) \
|
|
|
c260e0 |
$(lib505_SOURCES) $(lib506_SOURCES) $(lib507_SOURCES) \
|
|
|
c260e0 |
@@ -679,6 +687,7 @@ DIST_SOURCES = $(libhostname_la_SOURCES) $(chkhostname_SOURCES) \
|
|
|
c260e0 |
$(lib1500_SOURCES) $(lib1501_SOURCES) $(lib1502_SOURCES) \
|
|
|
c260e0 |
$(lib1503_SOURCES) $(lib1504_SOURCES) $(lib1505_SOURCES) \
|
|
|
c260e0 |
$(lib1506_SOURCES) $(lib1507_SOURCES) $(lib1508_SOURCES) \
|
|
|
c260e0 |
+ $(lib1529_SOURCES) \
|
|
|
c260e0 |
$(lib500_SOURCES) $(lib501_SOURCES) \
|
|
|
c260e0 |
$(lib502_SOURCES) $(lib503_SOURCES) $(lib504_SOURCES) \
|
|
|
c260e0 |
$(lib505_SOURCES) $(lib506_SOURCES) $(lib507_SOURCES) \
|
|
|
c260e0 |
@@ -1178,6 +1187,9 @@ lib1507_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1507
|
|
|
c260e0 |
lib1508_SOURCES = lib1508.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
|
|
|
c260e0 |
lib1508_LDADD = $(TESTUTIL_LIBS)
|
|
|
c260e0 |
lib1508_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1508
|
|
|
c260e0 |
+lib1529_SOURCES = lib1529.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
|
|
|
c260e0 |
+lib1529_LDADD = $(TESTUTIL_LIBS)
|
|
|
c260e0 |
+lib1529_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1529
|
|
|
c260e0 |
@BUILD_LIBHOSTNAME_FALSE@noinst_LTLIBRARIES =
|
|
|
c260e0 |
|
|
|
c260e0 |
# Makefile.inc provides the source defines (TESTUTIL, SUPPORTFILES,
|
|
|
c260e0 |
@@ -1282,6 +1294,9 @@ lib1507$(EXEEXT): $(lib1507_OBJECTS) $(lib1507_DEPENDENCIES) $(EXTRA_lib1507_DEP
|
|
|
c260e0 |
lib1508$(EXEEXT): $(lib1508_OBJECTS) $(lib1508_DEPENDENCIES) $(EXTRA_lib1508_DEPENDENCIES)
|
|
|
c260e0 |
@rm -f lib1508$(EXEEXT)
|
|
|
c260e0 |
$(LINK) $(lib1508_OBJECTS) $(lib1508_LDADD) $(LIBS)
|
|
|
c260e0 |
+lib1529$(EXEEXT): $(lib1529_OBJECTS) $(lib1529_DEPENDENCIES) $(EXTRA_lib1529_DEPENDENCIES)
|
|
|
c260e0 |
+ @rm -f lib1529$(EXEEXT)
|
|
|
c260e0 |
+ $(LINK) $(lib1529_OBJECTS) $(lib1529_LDADD) $(LIBS)
|
|
|
c260e0 |
lib500$(EXEEXT): $(lib500_OBJECTS) $(lib500_DEPENDENCIES) $(EXTRA_lib500_DEPENDENCIES)
|
|
|
c260e0 |
@rm -f lib500$(EXEEXT)
|
|
|
c260e0 |
$(LINK) $(lib500_OBJECTS) $(lib500_LDADD) $(LIBS)
|
|
|
c260e0 |
@@ -1557,6 +1572,10 @@ distclean-compile:
|
|
|
c260e0 |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1508-lib1508.Po@am__quote@
|
|
|
c260e0 |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1508-testutil.Po@am__quote@
|
|
|
c260e0 |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1508-warnless.Po@am__quote@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1529-first.Po@am__quote@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1529-lib1529.Po@am__quote@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1529-testutil.Po@am__quote@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib1529-warnless.Po@am__quote@
|
|
|
c260e0 |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500-first.Po@am__quote@
|
|
|
c260e0 |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500-lib500.Po@am__quote@
|
|
|
c260e0 |
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib500-testtrace.Po@am__quote@
|
|
|
c260e0 |
@@ -2312,6 +2331,62 @@ lib1508-warnless.obj: ../../lib/warnless.c
|
|
|
c260e0 |
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
|
c260e0 |
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1508_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1508-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi`
|
|
|
c260e0 |
|
|
|
c260e0 |
+lib1529-lib1529.o: lib1529.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1529-lib1529.o -MD -MP -MF $(DEPDIR)/lib1529-lib1529.Tpo -c -o lib1529-lib1529.o `test -f 'lib1529.c' || echo '$(srcdir)/'`lib1529.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1529-lib1529.Tpo $(DEPDIR)/lib1529-lib1529.Po
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lib1529.c' object='lib1529-lib1529.o' libtool=no @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1529-lib1529.o `test -f 'lib1529.c' || echo '$(srcdir)/'`lib1529.c
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+lib1529-lib1529.obj: lib1529.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1529-lib1529.obj -MD -MP -MF $(DEPDIR)/lib1529-lib1529.Tpo -c -o lib1529-lib1529.obj `if test -f 'lib1529.c'; then $(CYGPATH_W) 'lib1529.c'; else $(CYGPATH_W) '$(srcdir)/lib1529.c'; fi`
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1529-lib1529.Tpo $(DEPDIR)/lib1529-lib1529.Po
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lib1529.c' object='lib1529-lib1529.obj' libtool=no @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1529-lib1529.obj `if test -f 'lib1529.c'; then $(CYGPATH_W) 'lib1529.c'; else $(CYGPATH_W) '$(srcdir)/lib1529.c'; fi`
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+lib1529-first.o: first.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1529-first.o -MD -MP -MF $(DEPDIR)/lib1529-first.Tpo -c -o lib1529-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1529-first.Tpo $(DEPDIR)/lib1529-first.Po
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='first.c' object='lib1529-first.o' libtool=no @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1529-first.o `test -f 'first.c' || echo '$(srcdir)/'`first.c
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+lib1529-first.obj: first.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1529-first.obj -MD -MP -MF $(DEPDIR)/lib1529-first.Tpo -c -o lib1529-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1529-first.Tpo $(DEPDIR)/lib1529-first.Po
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='first.c' object='lib1529-first.obj' libtool=no @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1529-first.obj `if test -f 'first.c'; then $(CYGPATH_W) 'first.c'; else $(CYGPATH_W) '$(srcdir)/first.c'; fi`
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+lib1529-testutil.o: testutil.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1529-testutil.o -MD -MP -MF $(DEPDIR)/lib1529-testutil.Tpo -c -o lib1529-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1529-testutil.Tpo $(DEPDIR)/lib1529-testutil.Po
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='testutil.c' object='lib1529-testutil.o' libtool=no @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1529-testutil.o `test -f 'testutil.c' || echo '$(srcdir)/'`testutil.c
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+lib1529-testutil.obj: testutil.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib1529-testutil.obj -MD -MP -MF $(DEPDIR)/lib1529-testutil.Tpo -c -o lib1529-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi`
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lib1529-testutil.Tpo $(DEPDIR)/lib1529-testutil.Po
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='testutil.c' object='lib1529-testutil.obj' libtool=no @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib1529-testutil.obj `if test -f 'testutil.c'; then $(CYGPATH_W) 'testutil.c'; else $(CYGPATH_W) '$(srcdir)/testutil.c'; fi`
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+../../lib/lib1529-warnless.o: ../../lib/warnless.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../../lib/lib1529-warnless.o -MD -MP -MF ../../lib/$(DEPDIR)/lib1529-warnless.Tpo -c -o ../../lib/lib1529-warnless.o `test -f '../../lib/warnless.c' || echo '$(srcdir)/'`../../lib/warnless.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/lib1529-warnless.Tpo ../../lib/$(DEPDIR)/lib1529-warnless.Po
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../../lib/warnless.c' object='../../lib/lib1529-warnless.o' libtool=no @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib1529-warnless.o `test -f '../../lib/warnless.c' || echo '$(srcdir)/'`../../lib/warnless.c
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+../../lib/lib1529-warnless.obj: ../../lib/warnless.c
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../../lib/lib1529-warnless.obj -MD -MP -MF ../../lib/$(DEPDIR)/lib1529-warnless.Tpo -c -o ../../lib/lib1529-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi`
|
|
|
c260e0 |
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../../lib/$(DEPDIR)/lib1529-warnless.Tpo ../../lib/$(DEPDIR)/lib1529-warnless.Po
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../../lib/warnless.c' object='../../lib/lib1529-warnless.obj' libtool=no @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
|
|
c260e0 |
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib1529_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../../lib/lib1529-warnless.obj `if test -f '../../lib/warnless.c'; then $(CYGPATH_W) '../../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../../lib/warnless.c'; fi`
|
|
|
c260e0 |
+
|
|
|
c260e0 |
lib500-lib500.o: lib500.c
|
|
|
c260e0 |
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib500_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib500-lib500.o -MD -MP -MF $(DEPDIR)/lib500-lib500.Tpo -c -o lib500-lib500.o `test -f 'lib500.c' || echo '$(srcdir)/'`lib500.c
|
|
|
c260e0 |
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/lib500-lib500.Tpo $(DEPDIR)/lib500-lib500.Po
|
|
|
c260e0 |
diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc
|
|
|
c260e0 |
index bf73036..4f3ef6f 100644
|
|
|
c260e0 |
--- a/tests/libtest/Makefile.inc
|
|
|
c260e0 |
+++ b/tests/libtest/Makefile.inc
|
|
|
c260e0 |
@@ -23,7 +23,8 @@ noinst_PROGRAMS = chkhostname libauthretry libntlmconnect \
|
|
|
c260e0 |
lib582 lib583 lib585 lib586 lib587 \
|
|
|
c260e0 |
lib590 lib591 lib597 lib598 lib599 \
|
|
|
c260e0 |
\
|
|
|
c260e0 |
- lib1500 lib1501 lib1502 lib1503 lib1504 lib1505 lib1506 lib1507 lib1508
|
|
|
c260e0 |
+ lib1500 lib1501 lib1502 lib1503 lib1504 lib1505 lib1506 lib1507 lib1508 \
|
|
|
c260e0 |
+ lib1529
|
|
|
c260e0 |
|
|
|
c260e0 |
chkhostname_SOURCES = chkhostname.c ../../lib/curl_gethostname.c
|
|
|
c260e0 |
chkhostname_LDADD = @CURL_NETWORK_LIBS@
|
|
|
c260e0 |
@@ -320,3 +321,7 @@ lib1507_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1507
|
|
|
c260e0 |
lib1508_SOURCES = lib1508.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
|
|
|
c260e0 |
lib1508_LDADD = $(TESTUTIL_LIBS)
|
|
|
c260e0 |
lib1508_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1508
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+lib1529_SOURCES = lib1529.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
|
|
|
c260e0 |
+lib1529_LDADD = $(TESTUTIL_LIBS)
|
|
|
c260e0 |
+lib1529_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1529
|
|
|
c260e0 |
diff --git a/tests/libtest/lib1529.c b/tests/libtest/lib1529.c
|
|
|
c260e0 |
new file mode 100644
|
|
|
c260e0 |
index 0000000..3def142
|
|
|
c260e0 |
--- /dev/null
|
|
|
c260e0 |
+++ b/tests/libtest/lib1529.c
|
|
|
c260e0 |
@@ -0,0 +1,59 @@
|
|
|
c260e0 |
+/***************************************************************************
|
|
|
c260e0 |
+ * _ _ ____ _
|
|
|
c260e0 |
+ * Project ___| | | | _ \| |
|
|
|
c260e0 |
+ * / __| | | | |_) | |
|
|
|
c260e0 |
+ * | (__| |_| | _ <| |___
|
|
|
c260e0 |
+ * \___|\___/|_| \_\_____|
|
|
|
c260e0 |
+ *
|
|
|
c260e0 |
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
|
c260e0 |
+ *
|
|
|
c260e0 |
+ * This software is licensed as described in the file COPYING, which
|
|
|
c260e0 |
+ * you should have received as part of this distribution. The terms
|
|
|
c260e0 |
+ * are also available at http://curl.haxx.se/docs/copyright.html.
|
|
|
c260e0 |
+ *
|
|
|
c260e0 |
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
|
c260e0 |
+ * copies of the Software, and permit persons to whom the Software is
|
|
|
c260e0 |
+ * furnished to do so, under the terms of the COPYING file.
|
|
|
c260e0 |
+ *
|
|
|
c260e0 |
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
|
c260e0 |
+ * KIND, either express or implied.
|
|
|
c260e0 |
+ *
|
|
|
c260e0 |
+ ***************************************************************************/
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+#include "test.h"
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+#include "memdebug.h"
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+int test(char *URL)
|
|
|
c260e0 |
+{
|
|
|
c260e0 |
+ CURL *curl = NULL;
|
|
|
c260e0 |
+ CURLcode res = CURLE_FAILED_INIT;
|
|
|
c260e0 |
+ char bURL[512];
|
|
|
c260e0 |
+ snprintf(bURL, sizeof(bURL), "%s HTTP/1.1\r\nGET http://1529.com/1529", URL);
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+ if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
|
|
|
c260e0 |
+ fprintf(stderr, "curl_global_init() failed\n");
|
|
|
c260e0 |
+ return TEST_ERR_MAJOR_BAD;
|
|
|
c260e0 |
+ }
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+ if((curl = curl_easy_init()) == NULL) {
|
|
|
c260e0 |
+ fprintf(stderr, "curl_easy_init() failed\n");
|
|
|
c260e0 |
+ curl_global_cleanup();
|
|
|
c260e0 |
+ return TEST_ERR_MAJOR_BAD;
|
|
|
c260e0 |
+ }
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+ test_setopt(curl, CURLOPT_URL, bURL);
|
|
|
c260e0 |
+ test_setopt(curl, CURLOPT_PROXY, libtest_arg2);
|
|
|
c260e0 |
+ test_setopt(curl, CURLOPT_VERBOSE, 1L);
|
|
|
c260e0 |
+ test_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
|
|
|
c260e0 |
+ test_setopt(curl, CURLOPT_HEADER, 1L);
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+ res = curl_easy_perform(curl);
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+test_cleanup:
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+ curl_easy_cleanup(curl);
|
|
|
c260e0 |
+ curl_global_cleanup();
|
|
|
c260e0 |
+
|
|
|
c260e0 |
+ return (int)res;
|
|
|
c260e0 |
+}
|
|
|
c260e0 |
--
|
|
|
c260e0 |
2.1.0
|
|
|
c260e0 |
|