$NetBSD: patch-ah,v 1.1 2008/12/23 02:15:27 hasso Exp $

--- src/pulsecore/core-util.c.orig	2008-12-21 23:55:12 +0200
+++ src/pulsecore/core-util.c	2008-12-22 00:26:22 +0200
@@ -1026,12 +1026,21 @@ int pa_uid_in_group(uid_t uid, const cha
     char **i;
     int r = -1;
 
+#ifdef _SC_GETGR_R_SIZE_MAX
     g_n = sysconf(_SC_GETGR_R_SIZE_MAX);
     g_buf = pa_xmalloc((size_t) g_n);
+#else
+    g_buf = pa_xmalloc(512);
+#endif
 
+#ifdef _SC_GETPW_R_SIZE_MAX
     p_n = sysconf(_SC_GETPW_R_SIZE_MAX);
     p_buf = pa_xmalloc((size_t) p_n);
+#else
+    p_buf = pa_xmalloc(512);
+#endif
 
+#ifdef HAVE_GETGRNAM_R
     errno = 0;
     if (getgrnam_r(name, &grbuf, g_buf, (size_t) g_n, &gr) != 0 || !gr) {
 
@@ -1040,14 +1049,28 @@ int pa_uid_in_group(uid_t uid, const cha
 
         goto finish;
     }
+#else
+    gr = getgrnam(name);
+
+    if (gr == NULL) {
+        errno = ENOENT;
+        goto finish;
+    }
+#endif
 
     r = 0;
     for (i = gr->gr_mem; *i; i++) {
         struct passwd pwbuf, *pw;
 
+#ifdef HAVE_GETPWNAM_R
         errno = 0;
         if (getpwnam_r(*i, &pwbuf, p_buf, (size_t) p_n, &pw) != 0 || !pw)
             continue;
+#else
+	pw = getpwnam(*i);
+        if (pw == NULL)
+            continue;
+#endif
 
         if (pw->pw_uid == uid) {
             r = 1;
@@ -1069,9 +1092,14 @@ gid_t pa_get_gid_of_group(const char *na
     long g_n;
     struct group grbuf, *gr;
 
+#ifdef _SC_GETGR_R_SIZE_MAX
     g_n = sysconf(_SC_GETGR_R_SIZE_MAX);
     g_buf = pa_xmalloc((size_t) g_n);
+#else
+    g_buf = pa_xmalloc(512);
+#endif
 
+#ifdef HAVE_GETGRNAM_R
     errno = 0;
     if (getgrnam_r(name, &grbuf, g_buf, (size_t) g_n, &gr) != 0 || !gr) {
 
@@ -1080,6 +1108,14 @@ gid_t pa_get_gid_of_group(const char *na
 
         goto finish;
     }
+#else
+    gr = getgrnam(name);
+
+    if (gr == NULL) {
+        errno = ENOENT;
+        goto finish;
+    }
+#endif
 
     ret = gr->gr_gid;
 
