From 152284fb0f906aa9f12bdbd266173be255937706 Mon Sep 17 00:00:00 2001 From: uau Date: Sun, 28 Jan 2007 19:25:03 +0000 Subject: [PATCH] Fix base64_encode() max output length checking. Made HTTP auth fail if sum of username+password lengths was below 3. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22049 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/http.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/stream/http.c b/stream/http.c index 42c226b16c..103b6e83a4 100644 --- a/stream/http.c +++ b/stream/http.c @@ -680,7 +680,7 @@ base64_encode(const void *enc, int encLen, char *out, int outMax) { shift = 0; outMax &= ~3; - while( outLen0 ) { // Shift in byte bits <<= 8; @@ -706,15 +706,14 @@ base64_encode(const void *enc, int encLen, char *out, int outMax) { // Encode 6 bit segments while( shift>=6 ) { + if (outLen >= outMax) + return -1; shift -= 6; *out = b64[ (bits >> shift) & 0x3F ]; out++; outLen++; } } - - // Output overflow - return -1; } //! If this function succeeds you must closesocket stream->fd