Hello, attached patches fixes some bugs in passdb cache. First patch fixes bug which causes passdb cache always return empty scheme for cached passwords. Second patch fixes dovecot-auth crash with passdb cache enabled. I'm not sure that it is proper fix, though. Best regards. -- Andrey Panin | Linux and UNIX system administrator pazke at donpac.ru | PGP key: wwwkeys.pgp.net -------------- next part -------------- diff -urdpNX /usr/share/dontdiff dovecot-1.0-test55.vanilla/src/auth/passdb-cache.c dovecot-1.0-test55/src/auth/passdb-cache.c --- dovecot-1.0-test55.vanilla/src/auth/passdb-cache.c 2004-12-04 18:05:55.000000000 +0300 +++ dovecot-1.0-test55/src/auth/passdb-cache.c 2004-12-05 18:52:57.000000000 +0300 @@ -88,7 +88,6 @@ int passdb_cache_lookup_credentials(stru const char **scheme_r) { const char *value, *const *list; - const char *cached_pw; if (passdb_cache == NULL) return FALSE; @@ -108,7 +107,7 @@ int passdb_cache_lookup_credentials(stru list_save(request, NULL, list+1); *result_r = list[0]; - *scheme_r = password_get_scheme(&cached_pw); + *scheme_r = password_get_scheme(result_r); return TRUE; } -------------- next part -------------- diff -urdpNX /usr/share/dontdiff dovecot-1.0-test55.vanilla/src/auth/mech.c dovecot-1.0-test55/src/auth/mech.c --- dovecot-1.0-test55.vanilla/src/auth/mech.c 2004-12-04 18:07:56.000000000 +0300 +++ dovecot-1.0-test55/src/auth/mech.c 2004-12-04 18:14:01.000000000 +0300 @@ -258,7 +258,8 @@ void auth_request_extra_finish(struct au if (passdb_cache != NULL && cache_key != NULL) { str = t_str_new(64); - str_append_str(str, extra->str); + if (extra->str != NULL) + str_append_str(str, extra->str); if (extra->request->no_failure_delay) { if (str_len(str) > 0) str_append_c(str, '\t'); @@ -266,7 +267,8 @@ void auth_request_extra_finish(struct au } auth_cache_insert(passdb_cache, extra->request, cache_key, t_strconcat(extra->password == NULL ? "" : - extra->password, "\t", + extra->password, + str_len(str) > 0 ? "\t" : "", str_c(str), NULL)); } -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: <http://dovecot.org/pipermail/dovecot/attachments/20041206/4f383a91/attachment-0001.bin>