diff --git a/src/basicauth.c b/src/basicauth.c index ed0553b8..33d964b0 100644 --- a/src/basicauth.c +++ b/src/basicauth.c @@ -35,7 +35,7 @@ ssize_t basicauth_string(const char *user, const char *pass, char *buf, size_t bufsize) { - char tmp[256+2]; + char tmp[bufsize+2]; int l; if (!user || !pass) return -1; l = snprintf(tmp, sizeof tmp, "%s:%s", user, pass); diff --git a/src/upstream.c b/src/upstream.c index 52dad808..c07f810b 100644 --- a/src/upstream.c +++ b/src/upstream.c @@ -78,7 +78,7 @@ static struct upstream *upstream_build (const char *host, int port, char *domain up->host = up->ua.user = up->pass = NULL; if (user) { if (type == PT_HTTP) { - char b[BASE64ENC_BYTES((256+2)-1) + 1]; + char b[BASE64ENC_BYTES((strlen(user)+strlen(pass)+2)-1) + 1]; ssize_t ret; ret = basicauth_string(user, pass, b, sizeof b); if (ret == 0) {