radus at smartpost.ro
2004-Sep-30 19:07 UTC
[Dovecot] dovecot not working with some vpopmail passwords
Hello. I tried installing dovecot on a server that relies on vpopmail authentication using $1$ MD5 algorithm and it didn't work. Please fix this for the next release. Attached is a patch, please be carefull with the line wrapping. Radu --- passdb-vpopmail.c.old Thu Feb 20 00:46:51 2003 +++ passdb-vpopmail.c Thu Sep 30 18:58:56 2004 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2003 Timo Sirainen */ +/* Copyright (C) 2002-2003 cTimo Sirainen */ /* Thanks to Courier-IMAP for showing how the vpopmail API should be used */ @@ -20,6 +20,7 @@ { char vpop_user[VPOPMAIL_LIMIT], vpop_domain[VPOPMAIL_LIMIT]; struct vqpasswd *vpw; + char *password_crypt; int result; vpw = vpopmail_lookup_vqp(request->user, @@ -44,7 +45,12 @@ } /* verify password */ - result = strcmp(mycrypt(password, vpw->pw_passwd), vpw->pw_passwd) == 0; + + if (strncmp(vpw->pw_passwd, "$1$", 3) == 0) + password_crypt = md5_crypt(password, vpw->pw_passwd); + else password_crypt = crypt(password, vpw->pw_passwd); + + result = strcmp(password_crypt, vpw->pw_passwd) == 0; safe_memset(vpw->pw_passwd, 0, strlen(vpw->pw_passwd)); if (!result) {