dovecot-2.2: i_getpw*(): Added OpenBSD workaround.

dovecot at dovecot.org dovecot at dovecot.org
Sun Sep 22 07:24:38 EEST 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/801714cba91b
changeset: 16819:801714cba91b
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Sep 22 07:24:26 2013 +0300
description:
i_getpw*(): Added OpenBSD workaround.

diffstat:

 src/lib/ipwd.c |  10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diffs (27 lines):

diff -r be1d8dd8be94 -r 801714cba91b src/lib/ipwd.c
--- a/src/lib/ipwd.c	Sun Sep 22 07:20:12 2013 +0300
+++ b/src/lib/ipwd.c	Sun Sep 22 07:24:26 2013 +0300
@@ -50,6 +50,11 @@
 	do {
 		pw_init();
 		errno = getpwnam_r(name, pwd_r, pwbuf, pwbuf_size, &result);
+#ifdef __OpenBSD__
+		/* OpenBSD returns 1 for all errors, assume it's ERANGE */
+		if (errno == 1)
+			errno = ERANGE;
+#endif
 	} while (errno == ERANGE);
 	if (result != NULL)
 		return 1;
@@ -68,6 +73,11 @@
 	do {
 		pw_init();
 		errno = getpwuid_r(uid, pwd_r, pwbuf, pwbuf_size, &result);
+#ifdef __OpenBSD__
+		/* OpenBSD returns 1 for all errors, assume it's ERANGE */
+		if (errno == 1)
+			errno = ERANGE;
+#endif
 	} while (errno == ERANGE);
 	if (result != NULL)
 		return 1;


More information about the dovecot-cvs mailing list