Allocation of the base64 buffer might fail, resulting in a null
ptr being passed to base64_encode as a target buffer
Signed-off-by: Tobias Schramm <tobleminer@gmail.com>
}
}
-static void
+static int
uclient_http_add_auth_basic(struct uclient_http *uh)
{
struct uclient_url *url = uh->uc.url;
char *auth_buf;
if (auth_len > 512)
- return;
+ return -EINVAL;
auth_buf = alloca(base64_len(auth_len) + 1);
+ if (!auth_buf)
+ return -ENOMEM;
+
base64_encode(url->auth, auth_len, auth_buf);
ustream_printf(uh->us, "Authorization: Basic %s\r\n", auth_buf);
+
+ return 0;
}
static char *digest_unquote_sep(char **str)