diff -r b5bb7b3cd597 -r fbdfaacc4182 libidav/session.c --- a/libidav/session.c Mon Jan 22 17:27:47 2024 +0100 +++ b/libidav/session.c Sat Jan 27 17:50:19 2024 +0100 @@ -114,13 +114,17 @@ return sn; } -void dav_session_set_auth(DavSession *sn, char *user, char *password) { +void dav_session_set_auth(DavSession *sn, const char *user, const char *password) { if(user && password) { - size_t ulen = strlen(user); - size_t plen = strlen(password); - size_t upwdlen = ulen + plen + 2; + dav_session_set_auth_s(sn, cx_str(user), cx_str(password)); + } +} + +void dav_session_set_auth_s(DavSession *sn, cxstring user, cxstring password) { + if(user.length > 0 && password.length > 0) { + size_t upwdlen = user.length + password.length + 2; char *upwdbuf = malloc(upwdlen); - snprintf(upwdbuf, upwdlen, "%s:%s", user, password); + snprintf(upwdbuf, upwdlen, "%.*s:%.*s", (int)user.length, user.ptr, (int)password.length, password.ptr); curl_easy_setopt(sn->handle, CURLOPT_USERPWD, upwdbuf); free(upwdbuf); }