diff options
Diffstat (limited to 'tests/libtest')
| -rw-r--r-- | tests/libtest/Makefile.inc | 5 | ||||
| -rw-r--r-- | tests/libtest/lib590.c | 71 | 
2 files changed, 75 insertions, 1 deletions
| diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc index 5cfabf487..86e5e9999 100644 --- a/tests/libtest/Makefile.inc +++ b/tests/libtest/Makefile.inc @@ -15,7 +15,8 @@ noinst_PROGRAMS = chkhostname \    lib579 lib529 lib530 lib532 lib533 lib536 lib537 lib540 lib541 lib542	\    lib543 lib544 lib545 lib547 lib548 lib549 lib552 lib553 lib554 lib555	\    lib556 lib539 lib557 lib560 lib562 lib564 lib565 lib566 lib567 lib568	\ -  lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib587 lib589 +  lib569 lib570 lib571 lib572 lib573 lib582 lib583 lib585 lib587 lib589 \ +  lib590  chkhostname_SOURCES = chkhostname.c $(top_srcdir)/lib/curl_gethostname.c  chkhostname_LDADD = @CURL_NETWORK_LIBS@ @@ -171,3 +172,5 @@ lib587_SOURCES = lib554.c $(SUPPORTFILES)  lib587_CPPFLAGS = $(AM_CPPFLAGS) -DLIB587  lib589_SOURCES = lib589.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) + +lib590_SOURCES = lib590.c $(SUPPORTFILES) diff --git a/tests/libtest/lib590.c b/tests/libtest/lib590.c new file mode 100644 index 000000000..75c90d53f --- /dev/null +++ b/tests/libtest/lib590.c @@ -0,0 +1,71 @@ +/*************************************************************************** + *                                  _   _ ____  _ + *  Project                     ___| | | |  _ \| | + *                             / __| | | | |_) | | + *                            | (__| |_| |  _ <| |___ + *                             \___|\___/|_| \_\_____| + * + * Copyright (C) 1998 - 2011, 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 + * are also available at http://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ +#include "test.h" + +/* +  Based on a bug report recipe by Rene Bernhardt in +  http://curl.haxx.se/mail/lib-2011-10/0323.html + +  It is reproducible by the following steps: + +  - Use a proxy that offers NTLM and Negotiate ( CURLOPT_PROXY and +  CURLOPT_PROXYPORT ) +  - Tell libcurl NOT to use Negotiate  CURL_EASY_SETOPT(CURLOPT_PROXYAUTH, +  CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_NTLM ) +  - Start the request +*/ + +#include "memdebug.h" + +int test(char *URL) +{ +  CURLcode res; +  CURL *curl; + +  if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { +    fprintf(stderr, "curl_global_init() failed\n"); +    return TEST_ERR_MAJOR_BAD; +  } + +  if ((curl = curl_easy_init()) == NULL) { +    fprintf(stderr, "curl_easy_init() failed\n"); +    curl_global_cleanup(); +    return TEST_ERR_MAJOR_BAD; +  } + +  test_setopt(curl, CURLOPT_URL, URL); +  test_setopt(curl, CURLOPT_HEADER, 1L); +  test_setopt(curl, CURLOPT_PROXYAUTH, +              CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_NTLM); +  test_setopt(curl, CURLOPT_PROXY, libtest_arg2); /* set in first.c */ +  test_setopt(curl, CURLOPT_PROXYUSERPWD, "me:password"); + +  res = curl_easy_perform(curl); + +  test_cleanup: + +  curl_easy_cleanup(curl); +  curl_global_cleanup(); + +  return (int)res; +} + | 
