changeset 13717:b0c0d11792fc

i_getgr*(): Use a generic workaround for all OSes that report too small grbuf size.
author Timo Sirainen <tss@iki.fi>
date Wed, 16 Nov 2011 22:59:36 +0200
parents 0a94dfe6ac92
children f986b56d8e2a
files src/lib/ipwd.c
diffstat 1 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/ipwd.c	Wed Nov 16 22:13:35 2011 +0200
+++ b/src/lib/ipwd.c	Wed Nov 16 22:59:36 2011 +0200
@@ -31,11 +31,12 @@
 	long size;
 
 	if (grbuf == NULL) {
-		/* OpenBSD up to 4.9 reports too low value in sysconf() */
-#if !defined(__OpenBSD__) || OpenBSD >= 201111
 		size = sysconf(_SC_GETGR_R_SIZE_MAX);
-		if (size < 0)
-#endif
+		/* Some BSDs return too low value for this. instead of trying
+		   to figure out exactly which, just make sure it's at least
+		   a reasonable size. if the real size is smaller, it doesn't
+		   matter much that we waste a few kilobytes of memory. */
+		if (size < DEFAULT_GRBUF_SIZE)
 			size = DEFAULT_GRBUF_SIZE;
 
 		grbuf_size = size;