Reduce allocated length of the HTTP authentication request field buffer, as
authorRonald S. Bultje <rsbultje@gmail.com>
Tue, 3 Mar 2009 13:26:17 +0000 (13:26 +0000)
committerRonald S. Bultje <rsbultje@gmail.com>
Tue, 3 Mar 2009 13:26:17 +0000 (13:26 +0000)
noticed by Stefano and Luca in the "[PATCH]RTSP Basic Authentication"
mailinglist thread.

av_base64_encode() was recently changed. The previous implementation required
12 extra bytes (ceil(len(src)/3.)*4+12), whereas the new one is guaranteed to
fit in an exact buffer (ceil(len(src)/3.)*4), plus one extra byte for the
trailing zero. This change fixes no bug, it just slightly decreases the
amount of allocated memory.

Originally committed as revision 17761 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/http.c

index 2e6a1db..039ef7b 100644 (file)
@@ -212,7 +212,7 @@ static int http_connect(URLContext *h, const char *path, const char *hoststr,
     int post, err, ch;
     char line[1024], *q;
     char *auth_b64;
     int post, err, ch;
     char line[1024], *q;
     char *auth_b64;
-    int auth_b64_len = strlen(auth)* 4 / 3 + 12;
+    int auth_b64_len = (strlen(auth) + 2) / 3 * 4 + 1;
     int64_t off = s->off;
 
 
     int64_t off = s->off;