From bd69bc9ced5acc072bfa2bd55414b61f9691be3c Mon Sep 17 00:00:00 2001 From: lotodore Date: Sun, 21 Mar 2010 17:56:50 +0000 Subject: [PATCH] Trying to fix base64 problems. --- src/net/common/sessiondata.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/net/common/sessiondata.cpp b/src/net/common/sessiondata.cpp index 413ecf82..f48fb967 100644 --- a/src/net/common/sessiondata.cpp +++ b/src/net/common/sessiondata.cpp @@ -97,8 +97,9 @@ SessionData::CreateClientAuthSession(Gsasl *context, const string &userName, con if (errorCode == GSASL_OK) { char *base64User = NULL; - gsasl_base64_to(userName.c_str(), userName.length(), &base64User, NULL); - gsasl_property_set(m_authSession, GSASL_AUTHID, base64User); + size_t lenBase64User = 0; + gsasl_base64_to(userName.c_str(), userName.length(), &base64User, &lenBase64User); + gsasl_property_set(m_authSession, GSASL_AUTHID, string(base64User, lenBase64User).c_str()); gsasl_free(base64User); gsasl_property_set(m_authSession, GSASL_PASSWORD, password.c_str()); @@ -142,11 +143,12 @@ SessionData::AuthGetUser() const if (m_authSession) { char *base64User = NULL; + size_t lenBase64User = 0; const char *tmpUser = gsasl_property_fast(m_authSession, GSASL_AUTHID); - gsasl_base64_from(tmpUser, strlen(tmpUser), &base64User, NULL); + gsasl_base64_from(tmpUser, strlen(tmpUser), &base64User, &lenBase64User); if (base64User) { - retStr = base64User; + retStr = string(base64User, lenBase64User); gsasl_free(base64User); } }