Fix getpeereid() compilation on Solaris

The code in getpeereid() is unlikely to compile as ucred_t is an opaque
struct (ucred_t * works but ucred_t does not). Either you need to give
a pointer initialized to NULL and getpeerucred() allocates a new ucred
or you call it with an allocated ucred as in this patch.

Signed-off-by: Guillem Jover <guillem@hadrons.org>
This commit is contained in:
Casper Dik 2013-03-15 01:13:58 +01:00 committed by Guillem Jover
parent d3a09e1cf4
commit a4812cdf24

View File

@ -99,11 +99,13 @@ getpeereid(int s, uid_t *euid, gid_t *egid)
}
#elif defined(__sun)
/* Solaris */
#include <alloca.h>
#include <ucred.h>
int
getpeereid(int s, uid_t *euid, gid_t *egid)
{
ucred_t cred_inst;
ucred_t *cred = &cred_inst;
ucred_t *cred = alloca(ucred_size());
int ret;
ret = getpeerucred(s, &cred);