diff --git a/modules/m_sasl.c b/modules/m_sasl.c index fadddf7..5f8f443 100644 --- a/modules/m_sasl.c +++ b/modules/m_sasl.c @@ -172,9 +172,9 @@ me_sasl(struct Client *client_p, struct Client *source_p, static int server_auth_sasl(struct Client *client_p) { - char *auth_user; + char *auth_user = NULL; - if (client_p->localClient->auth_user) + if (client_p->localClient->auth_user != NULL) { memset(client_p->localClient->auth_user, 0, strlen(client_p->localClient->auth_user)); @@ -182,10 +182,10 @@ static int server_auth_sasl(struct Client *client_p) client_p->localClient->auth_user = NULL; } - auth_user = rb_strndup(client_p->user->suser, PASSWDLEN); + if (client_p->user != NULL && client_p->user->suser != NULL) + auth_user = rb_strndup(client_p->user->suser, PASSWDLEN); - /* pointless check here */ - if (auth_user) + if (auth_user != NULL) client_p->localClient->auth_user = rb_strndup(auth_user, PASSWDLEN); return 0;