The function check_duplicate_logins in auth.c (2.3.0.rc2) contains a bug. The client object passed to the function gets overwritten inside it, and a the comparsion "strcmp (client->username, client->username) =0" always returns zero, so any username is always considered duplicate. Patch suggestion attached. -------------- next part -------------- --- src/auth.c.orig Sat Sep 10 16:44:43 2005 +++ src/auth.c Sat Sep 10 17:19:28 2005 @@ -238,8 +238,8 @@ node = avl_get_first (source->client_tree); while (node) { - client_t *client = (client_t *)node->key; - if (client->username && strcmp (client->username, client->username) == 0) + client_t *existing_client = (client_t *)node->key; + if (existing_client->username && strcmp (existing_client->username, client->username) == 0) { avl_tree_unlock (source->client_tree); return 0; @@ -252,8 +252,8 @@ node = avl_get_first (source->pending_tree); while (node) { - client_t *client = (client_t *)node->key; - if (client->username && strcmp (client->username, client->username) == 0) + client_t *existing_client = (client_t *)node->key; + if (existing_client->username && strcmp (existing_client->username, client->username) == 0) { avl_tree_unlock (source->pending_tree); return 0;