sia_getpasswd(3)sia_getpasswd(3)NAME
sia_getpasswd, sia_getgroup - interface to the getpw* and getgr* rou‐
tines for SIA (Security Integration Architecture)
SYNOPSIS
#include <sia.h> #include <siad.h>
int sia_getpasswd(
int function,
int reentrant,
union sia_get_params *params ); int sia_getgroup(
int function,
int reentrant,
union sia_get_params *params );
LIBRARY
Standard C library (libc.so and libc.a)
PARAMETERS
The function parameter is a subfunction selection code as defined by
P_SET in the siad.h file. The reentrant parameter is a flag which is
either REENTRANT (1) or NON_REENTRANT (0). NON_REENTRANT indicates that
the result and buffer pointers passed in the params arguments will be
returned pointing to static data. REENTRANT indicates that result and
buffer are used as passed (caller provided storage). The
sia_get_params() is defined as follows:
typedef struct {
char *name;
gid_t gid;
struct group *result;
char *buffer;
int len;
int pkgind; } group_params;
typedef struct {
char *name;
uid_t uid;
struct passwd *result;
char *buffer;
int len;
int pkgind; } passwd_params;
union sia_get_params {
group_params group;
passwd_params passwd; };
DESCRIPTION
The sia_getpasswd() routine provides thread locking for the libc_r rou‐
tines (-D_THREAD_SAFE), provides static storage for non reentrant
getpw* routines, and calls the appropriate siad_getpw* routine. This
routine is called by getpwnam(), getpwnam_r(), getpwuid(), getp‐
wuid_r(), getpwent(), and getpwent_r().
The sia_getgroup() routine provides thread locking for libc_r routines
(-D_THREAD_SAFE), provide static storage for non reentrant getgr* rou‐
tines, and calls the appropriate siad_getgr* routine. This routine is
called by getgrnam(), getgrnam_r(), getgrgid(), getgrgid_r(), get‐
grent(), and getgrent_r().
RETURN VALUES
The sia_getgroup() and sia_getpasswd() routines return either SIASUC‐
CESS or SIAFAIL.
ERRORS
The errno value is not (normally) set explicitly by sia_* routines. The
errno values are those returned from the dynamic loader interface, from
dependent (siad_*) routines, or from malloc. Possible errors include
resource constraints (no memory) and various authentication failures.
FILES
/etc/group
/etc/passwd
/etc/sia/matrix.conf
SEE ALSOgetgrent(3), getpwent(3), matrix.conf(4)
Security
sia_getpasswd(3)