On Wednesday 30 October 2013 09:58:36 Daniel Stenberg wrote:
> On Wed, 30 Oct 2013, Steve Holme wrote:
> > I've just pushed commit e17c1b25bc33eb.
> >
> > I will an eye out on the auto builds to see if anything is flagged but
> > any comments or feedback is much appreciated.
> 
> It immediately made test 67 fail for me. It seems our NTLM code is passing
>  in the basee64 string _with_ the trailing CRLF at the end (sent to the
>  Curl_ntlm_decode_type2_message() function) so the length isn't an even 4
>  bytes. In the test case the string is in fact 218 bytes as the last two
>  aren't part of the base64...

The following patch fixes the problem for me.

Kamil
From f3c19677c237a8f7857cff8d8673227ea49ebebb Mon Sep 17 00:00:00 2001
From: Kamil Dudka <[email protected]>
Date: Wed, 30 Oct 2013 16:04:24 +0100
Subject: [PATCH] base64: do not fail on trailing new line character

This fixes numerous failing test cases since e17c1b25.
---
 lib/base64.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/lib/base64.c b/lib/base64.c
index 93b8be2..f329f06 100644
--- a/lib/base64.c
+++ b/lib/base64.c
@@ -90,17 +90,22 @@ CURLcode Curl_base64_decode(const char *src,
   unsigned char lastQuantum[3];
   size_t rawlen = 0;
   unsigned char *newstr;
+  unsigned char c;
 
   *outptr = NULL;
   *outlen = 0;
   srcLen = strlen(src);
 
+  if(srcLen && (src[srcLen - 1] == '\n'))
+    /* the string ends with a new line character, which we ignore */
+    --srcLen;
+
   /* Check the length of the input string is valid */
   if(!srcLen || srcLen % 4)
     return CURLE_BAD_CONTENT_ENCODING;
 
   /* Find the position of any = padding characters */
-  while((src[length] != '=') && src[length])
+  while((c = src[length]) && (c != '=') && (c != '\n'))
     length++;
 
   /* A maximum of two = padding characters is allowed */
-- 
1.7.1

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to