Some cleanup for base64_encode
This commit is contained in:
@@ -2008,7 +2008,7 @@ void (*mySignal(int signal_number, void (*action) (int))) (int) {
|
|||||||
static char Base64Table[] =
|
static char Base64Table[] =
|
||||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||||
|
|
||||||
const char *
|
char *
|
||||||
base64_encode(const unsigned char *src, int len)
|
base64_encode(const unsigned char *src, int len)
|
||||||
{
|
{
|
||||||
unsigned char *w, *at;
|
unsigned char *w, *at;
|
||||||
@@ -2021,9 +2021,9 @@ base64_encode(const unsigned char *src, int len)
|
|||||||
k = k / 3 * 4;
|
k = k / 3 * 4;
|
||||||
|
|
||||||
if (k < len)
|
if (k < len)
|
||||||
return "";
|
return NULL;
|
||||||
|
|
||||||
w = GC_MALLOC_ATOMIC(k);
|
w = GC_MALLOC_ATOMIC(k + 1);
|
||||||
w[k] = 0;
|
w[k] = 0;
|
||||||
|
|
||||||
at = w;
|
at = w;
|
||||||
@@ -2061,5 +2061,5 @@ base64_encode(const unsigned char *src, int len)
|
|||||||
*at++ = '=';
|
*at++ = '=';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return w;
|
return (char *)w;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1175,7 +1175,11 @@ AuthBasicCred(struct http_auth *ha, Str uname, Str pw, ParsedURL *pu,
|
|||||||
Str s = Strdup(uname);
|
Str s = Strdup(uname);
|
||||||
Strcat_char(s, ':');
|
Strcat_char(s, ':');
|
||||||
Strcat(s, pw);
|
Strcat(s, pw);
|
||||||
return Strnew_m_charp("Basic ", base64_encode(s->ptr, s->length), NULL);
|
char *base64 = base64_encode(s->ptr, s->length);
|
||||||
|
if (!base64)
|
||||||
|
return Strnew_charp("Basic ");
|
||||||
|
else
|
||||||
|
return Strnew_m_charp("Basic ", base64, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_DIGEST_AUTH
|
#ifdef USE_DIGEST_AUTH
|
||||||
|
|||||||
Reference in New Issue
Block a user