Whitespace cleanup + keyword expansion sweep.

Sponsored by:	DARPA, NAI Labs


git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@16 185d5e19-27fe-0310-9dcf-9bff6b9f3609
This commit is contained in:
Dag-Erling Smørgrav 2002-02-01 22:20:07 +00:00
parent 4c413f4604
commit 2a23af0e82
21 changed files with 173 additions and 171 deletions

View File

@ -52,91 +52,93 @@ static struct pam_conv pamc;
static void static void
usage(void) usage(void)
{ {
fprintf(stderr, "Usage: su [login [args]]\n");
exit(1); fprintf(stderr, "Usage: su [login [args]]\n");
exit(1);
} }
static int static int
check(const char *func, int pam_err) check(const char *func, int pam_err)
{ {
if (pam_err == PAM_SUCCESS || pam_err == PAM_NEW_AUTHTOK_REQD)
return pam_err; if (pam_err == PAM_SUCCESS || pam_err == PAM_NEW_AUTHTOK_REQD)
openlog("su", LOG_CONS, LOG_AUTH); return pam_err;
syslog(LOG_ERR, "%s(): %s", func, pam_strerror(pamh, pam_err)); openlog("su", LOG_CONS, LOG_AUTH);
errx(1, "Sorry."); syslog(LOG_ERR, "%s(): %s", func, pam_strerror(pamh, pam_err));
errx(1, "Sorry.");
} }
int int
main(int argc, char *argv[]) main(int argc, char *argv[])
{ {
char hostname[MAXHOSTNAMELEN]; char hostname[MAXHOSTNAMELEN];
const char *user, *tty; const char *user, *tty;
struct passwd *pwd; struct passwd *pwd;
int o, status; int o, status;
pid_t pid; pid_t pid;
while ((o = getopt(argc, argv, "h")) != -1) while ((o = getopt(argc, argv, "h")) != -1)
switch (o) { switch (o) {
case 'h': case 'h':
default: default:
usage(); usage();
} }
argc -= optind; argc -= optind;
argv += optind; argv += optind;
/* initialize PAM */ /* initialize PAM */
pamc.conv = &openpam_ttyconv; pamc.conv = &openpam_ttyconv;
pam_start("su", argc ? *argv : "root", &pamc, &pamh); pam_start("su", argc ? *argv : "root", &pamc, &pamh);
/* set some items */ /* set some items */
gethostname(hostname, sizeof hostname); gethostname(hostname, sizeof hostname);
check("pam_set_item", pam_set_item(pamh, PAM_RHOST, hostname)); check("pam_set_item", pam_set_item(pamh, PAM_RHOST, hostname));
user = getlogin(); user = getlogin();
check("pam_set_item", pam_set_item(pamh, PAM_RUSER, user)); check("pam_set_item", pam_set_item(pamh, PAM_RUSER, user));
tty = ttyname(STDERR_FILENO); tty = ttyname(STDERR_FILENO);
check("pam_set_item", pam_set_item(pamh, PAM_TTY, tty)); check("pam_set_item", pam_set_item(pamh, PAM_TTY, tty));
/* authenticate the applicant */ /* authenticate the applicant */
check("pam_authenticate", pam_authenticate(pamh, 0)); check("pam_authenticate", pam_authenticate(pamh, 0));
if (check("pam_acct_mgmt", pam_acct_mgmt(pamh, 0)) == if (check("pam_acct_mgmt", pam_acct_mgmt(pamh, 0)) ==
PAM_NEW_AUTHTOK_REQD) PAM_NEW_AUTHTOK_REQD)
check("pam_chauthtok", check("pam_chauthtok",
pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK)); pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK));
/* establish the requested credentials */ /* establish the requested credentials */
check("pam_setcred", pam_setcred(pamh, PAM_ESTABLISH_CRED)); check("pam_setcred", pam_setcred(pamh, PAM_ESTABLISH_CRED));
/* authentication succeeded; open a session */ /* authentication succeeded; open a session */
check("pam_open_session", pam_open_session(pamh, 0)); check("pam_open_session", pam_open_session(pamh, 0));
if (initgroups(pwd->pw_name, pwd->pw_gid) == -1) if (initgroups(pwd->pw_name, pwd->pw_gid) == -1)
err(1, "initgroups()"); err(1, "initgroups()");
if (setuid(pwd->pw_uid) == -1) if (setuid(pwd->pw_uid) == -1)
err(1, "setuid()"); err(1, "setuid()");
/* XXX export environment variables */ /* XXX export environment variables */
switch ((pid = fork())) {
case -1:
err(1, "fork()");
case 0:
/* child: start a shell */
*argv = pwd->pw_shell;
execvp(*argv, argv);
err(1, "execvp()");
default:
/* parent: wait for child to exit */
waitpid(pid, &status, 0);
if (WIFEXITED(status))
status = WEXITSTATUS(status);
else
status = 1;
}
/* close the session and release PAM resources */ switch ((pid = fork())) {
check("pam_close_session", pam_close_session(pamh, 0)); case -1:
check("pam_end", pam_end(pamh, 0)); err(1, "fork()");
case 0:
/* child: start a shell */
*argv = pwd->pw_shell;
execvp(*argv, argv);
err(1, "execvp()");
default:
/* parent: wait for child to exit */
waitpid(pid, &status, 0);
if (WIFEXITED(status))
status = WEXITSTATUS(status);
else
status = 1;
}
exit(status); /* close the session and release PAM resources */
check("pam_close_session", pam_close_session(pamh, 0));
check("pam_end", pam_end(pamh, 0));
exit(status);
} }

View File

@ -2,12 +2,12 @@ $Id$
Errata in XSSO, chapter 5: Errata in XSSO, chapter 5:
p. 25: the first member of struct pam_response is named "resp", not p. 25: the first member of struct pam_response is named "resp", not
"response". "response".
Errata in XSSO, chapter 6: Errata in XSSO, chapter 6:
p. 32: "PAM_NEW_AUTHTOKEN_REQD" in the DESCRIPTION and RETURN VALUE p. 32: "PAM_NEW_AUTHTOKEN_REQD" in the DESCRIPTION and RETURN VALUE
sections should be "PAM_NEW_AUTHTOK_REQD". sections should be "PAM_NEW_AUTHTOK_REQD".
p. 32: pam_acct_mgmt() must be allowed to return PAM_AUTH_ERR. p. 32: pam_acct_mgmt() must be allowed to return PAM_AUTH_ERR.
@ -18,7 +18,7 @@ p. 46: "PAM_AUTHOK" and "PAM_OLDAUTHOK" in the DESCRIPTION section
p. 60: "PAM_AUTHOK" and "PAM_OLDAUTHOK" in the DESCRIPTION section p. 60: "PAM_AUTHOK" and "PAM_OLDAUTHOK" in the DESCRIPTION section
should be "PAM_AUTHTOK" and "PAM_OLDAUTHTOK", respectively. should be "PAM_AUTHTOK" and "PAM_OLDAUTHTOK", respectively.
p. 62: the target_authtok_len argument to pam_set_mapped_authtok() is p. 62: the target_authtok_len argument to pam_set_mapped_authtok() is
of type size_t, not a size_t *. of type size_t, not a size_t *.
p. 52: PAM_CONV_ERR is listed out of order and with the explanatory p. 52: PAM_CONV_ERR is listed out of order and with the explanatory
@ -52,7 +52,7 @@ p. 85: the names of several arguments to pam_sm_set_mapped_username()
p. 89: the user argument to pam_start() is of type const char *. p. 89: the user argument to pam_start() is of type const char *.
p. 89: the correct definition for struct pam_conv is as follows: p. 89: the correct definition for struct pam_conv is as follows:
struct pam_conv { struct pam_conv {
int (*conv)(int, struct pam_message **, int (*conv)(int, struct pam_message **,
@ -60,7 +60,7 @@ p. 89: the correct definition for struct pam_conv is as follows:
void *appdata_ptr; void *appdata_ptr;
}; };
p. 90: the correct definition for struct pam_response is as follows: p. 90: the correct definition for struct pam_response is as follows:
struct pam_response { struct pam_response {
char *resp; char *resp;

View File

@ -141,7 +141,7 @@ pam_info(pam_handle_t *_pamh,
int int
pam_prompt(pam_handle_t *pamh, pam_prompt(pam_handle_t *pamh,
char **resp, char **resp,
int echo, int echo,
const char *fmt, const char *fmt,
...); ...);

View File

@ -57,7 +57,7 @@ openpam_dispatch(pam_handle_t *pamh,
{ {
pam_chain_t *module; pam_chain_t *module;
int err, fail, r; int err, fail, r;
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); return (PAM_SYSTEM_ERR);
@ -147,7 +147,7 @@ _openpam_check_error_code(int primitive, int r)
r == PAM_CONV_ERR || r == PAM_CONV_ERR ||
r == PAM_PERM_DENIED) r == PAM_PERM_DENIED)
return; return;
/* specific error codes */ /* specific error codes */
switch (primitive) { switch (primitive) {
case PAM_AUTHENTICATE: case PAM_AUTHENTICATE:
@ -186,7 +186,7 @@ _openpam_check_error_code(int primitive, int r)
return; return;
break; break;
} }
openpam_log(PAM_LOG_ERROR, "%s(): unexpected return value %d", openpam_log(PAM_LOG_ERROR, "%s(): unexpected return value %d",
_pam_sm_func_name[primitive], r); _pam_sm_func_name[primitive], r);
} }

View File

@ -50,7 +50,7 @@ openpam_findenv(pam_handle_t *pamh,
size_t len) size_t len)
{ {
int i; int i;
if (pamh == NULL) if (pamh == NULL)
return (-1); return (-1);

View File

@ -43,9 +43,9 @@
* Control flags * Control flags
*/ */
#define PAM_REQUIRED 1 #define PAM_REQUIRED 1
#define PAM_REQUISITE 2 #define PAM_REQUISITE 2
#define PAM_SUFFICIENT 3 #define PAM_SUFFICIENT 3
#define PAM_OPTIONAL 4 #define PAM_OPTIONAL 4
#define PAM_NUM_CONTROLFLAGS 5 #define PAM_NUM_CONTROLFLAGS 5
/* /*
@ -91,7 +91,7 @@ struct pam_data {
struct pam_handle { struct pam_handle {
char *service; char *service;
/* chains */ /* chains */
pam_chain_t *chains[PAM_NUM_CHAINS]; pam_chain_t *chains[PAM_NUM_CHAINS];

View File

@ -51,28 +51,28 @@
int int
openpam_ttyconv(int n, openpam_ttyconv(int n,
const struct pam_message **msg, const struct pam_message **msg,
struct pam_response **resp, struct pam_response **resp,
void *data) void *data)
{ {
char buf[PAM_MAX_RESP_SIZE]; char buf[PAM_MAX_RESP_SIZE];
struct termios tattr; struct termios tattr;
tcflag_t lflag; tcflag_t lflag;
int fd, err, i; int fd, err, i;
size_t len; size_t len;
data = data; data = data;
if (n <= 0 || n > PAM_MAX_NUM_MSG) if (n <= 0 || n > PAM_MAX_NUM_MSG)
return (PAM_CONV_ERR); return (PAM_CONV_ERR);
if ((*resp = calloc(n, sizeof **resp)) == NULL) if ((*resp = calloc(n, sizeof **resp)) == NULL)
return (PAM_BUF_ERR); return (PAM_BUF_ERR);
fd = fileno(stdin); fd = fileno(stdin);
for (i = 0; i < n; ++i) { for (i = 0; i < n; ++i) {
resp[i]->resp_retcode = 0; resp[i]->resp_retcode = 0;
resp[i]->resp = NULL; resp[i]->resp = NULL;
switch (msg[i]->msg_style) { switch (msg[i]->msg_style) {
case PAM_PROMPT_ECHO_OFF: case PAM_PROMPT_ECHO_OFF:
case PAM_PROMPT_ECHO_ON: case PAM_PROMPT_ECHO_ON:
if (msg[i]->msg_style == PAM_PROMPT_ECHO_OFF) { if (msg[i]->msg_style == PAM_PROMPT_ECHO_OFF) {
if (tcgetattr(fd, &tattr) != 0) { if (tcgetattr(fd, &tattr) != 0) {
openpam_log(PAM_LOG_ERROR, openpam_log(PAM_LOG_ERROR,
@ -88,44 +88,44 @@ openpam_ttyconv(int n,
err = PAM_CONV_ERR; err = PAM_CONV_ERR;
goto fail; goto fail;
} }
} }
fputs(msg[i]->msg, stderr); fputs(msg[i]->msg, stderr);
buf[0] = '\0'; buf[0] = '\0';
fgets(buf, sizeof buf, stdin); fgets(buf, sizeof buf, stdin);
if (msg[i]->msg_style == PAM_PROMPT_ECHO_OFF) { if (msg[i]->msg_style == PAM_PROMPT_ECHO_OFF) {
tattr.c_lflag = lflag; tattr.c_lflag = lflag;
(void)tcsetattr(fd, TCSANOW, &tattr); (void)tcsetattr(fd, TCSANOW, &tattr);
fputs("\n", stderr); fputs("\n", stderr);
} }
if (ferror(stdin)) { if (ferror(stdin)) {
err = PAM_CONV_ERR; err = PAM_CONV_ERR;
goto fail; goto fail;
} }
for (len = strlen(buf); len > 0; --len) for (len = strlen(buf); len > 0; --len)
if (!isspace(buf[len - 1])) if (!isspace(buf[len - 1]))
break; break;
buf[len] = '\0'; buf[len] = '\0';
if ((resp[i]->resp = strdup(buf)) == NULL) { if ((resp[i]->resp = strdup(buf)) == NULL) {
err = PAM_BUF_ERR; err = PAM_BUF_ERR;
goto fail; goto fail;
} }
break; break;
case PAM_ERROR_MSG: case PAM_ERROR_MSG:
fputs(msg[i]->msg, stderr); fputs(msg[i]->msg, stderr);
break; break;
case PAM_TEXT_INFO: case PAM_TEXT_INFO:
fputs(msg[i]->msg, stdout); fputs(msg[i]->msg, stdout);
break; break;
default: default:
err = PAM_BUF_ERR; err = PAM_BUF_ERR;
goto fail; goto fail;
} }
} }
return (PAM_SUCCESS); return (PAM_SUCCESS);
fail: fail:
while (i) while (i)
free(resp[--i]); free(resp[--i]);
free(*resp); free(*resp);
*resp = NULL; *resp = NULL;
return (err); return (err);
} }

View File

@ -73,8 +73,8 @@ pam_end(pam_handle_t *pamh,
/* clear items */ /* clear items */
for (i = 0; i < PAM_NUM_ITEMS; ++i) for (i = 0; i < PAM_NUM_ITEMS; ++i)
free(pamh->item[i]); free(pamh->item[i]);
free(pamh); free(pamh);
return (PAM_SUCCESS); return (PAM_SUCCESS);
} }

View File

@ -52,7 +52,7 @@ pam_get_authtok(pam_handle_t *pamh,
const char *prompt) const char *prompt)
{ {
int r; int r;
if (pamh == NULL || authtok == NULL) if (pamh == NULL || authtok == NULL)
return (PAM_SYSTEM_ERR); return (PAM_SYSTEM_ERR);

View File

@ -53,7 +53,7 @@ pam_get_data(pam_handle_t *pamh,
void **data) void **data)
{ {
pam_data_t *dp; pam_data_t *dp;
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); return (PAM_SYSTEM_ERR);
@ -62,6 +62,6 @@ pam_get_data(pam_handle_t *pamh,
*data = dp->data; *data = dp->data;
return (PAM_SUCCESS); return (PAM_SUCCESS);
} }
return (PAM_NO_MODULE_DATA); return (PAM_NO_MODULE_DATA);
} }

View File

@ -54,7 +54,7 @@ pam_get_item(pam_handle_t *pamh,
{ {
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); return (PAM_SYSTEM_ERR);
switch (item_type) { switch (item_type) {
case PAM_SERVICE: case PAM_SERVICE:
case PAM_USER: case PAM_USER:

View File

@ -53,7 +53,7 @@ pam_get_user(pam_handle_t *pamh,
const char *prompt) const char *prompt)
{ {
int r; int r;
if (pamh == NULL || user == NULL) if (pamh == NULL || user == NULL)
return (PAM_SYSTEM_ERR); return (PAM_SYSTEM_ERR);

View File

@ -53,7 +53,7 @@ pam_getenv(pam_handle_t *pamh,
const char *name) const char *name)
{ {
int i; int i;
if (pamh == NULL) if (pamh == NULL)
return (NULL); return (NULL);

View File

@ -48,7 +48,7 @@
int int
pam_prompt(pam_handle_t *pamh, pam_prompt(pam_handle_t *pamh,
char **resp, char **resp,
int echo, int echo,
const char *fmt, const char *fmt,
...) ...)

View File

@ -54,7 +54,7 @@ pam_putenv(pam_handle_t *pamh,
{ {
char **env, *p; char **env, *p;
int i; int i;
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); return (PAM_SYSTEM_ERR);

View File

@ -57,7 +57,7 @@ pam_set_data(pam_handle_t *pamh,
int pam_end_status)) int pam_end_status))
{ {
pam_data_t *dp; pam_data_t *dp;
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); return (PAM_SYSTEM_ERR);
@ -70,7 +70,7 @@ pam_set_data(pam_handle_t *pamh,
return (PAM_SUCCESS); return (PAM_SUCCESS);
} }
} }
if ((dp = malloc(sizeof *dp)) == NULL) if ((dp = malloc(sizeof *dp)) == NULL)
return (PAM_BUF_ERR); return (PAM_BUF_ERR);
if ((dp->name = strdup(module_data_name)) == NULL) { if ((dp->name = strdup(module_data_name)) == NULL) {

View File

@ -59,7 +59,7 @@ pam_set_item(pam_handle_t *pamh,
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); return (PAM_SYSTEM_ERR);
switch (item_type) { switch (item_type) {
case PAM_SERVICE: case PAM_SERVICE:
case PAM_USER: case PAM_USER:

View File

@ -79,11 +79,11 @@ pam_start(const char *service,
r = _pam_configure_service(ph, PAM_OTHER); r = _pam_configure_service(ph, PAM_OTHER);
if (r != PAM_SUCCESS) if (r != PAM_SUCCESS)
goto fail; goto fail;
*pamh = ph; *pamh = ph;
openpam_log(PAM_LOG_DEBUG, "pam_start(\"%s\") succeeded", service); openpam_log(PAM_LOG_DEBUG, "pam_start(\"%s\") succeeded", service);
return (PAM_SUCCESS); return (PAM_SUCCESS);
fail: fail:
pam_end(ph, r); pam_end(ph, r);
return (r); return (r);
@ -101,10 +101,10 @@ const char *_pam_sm_func_name[PAM_NUM_PRIMITIVES] = {
static int static int
_pam_add_module(pam_handle_t *pamh, _pam_add_module(pam_handle_t *pamh,
int chain, int chain,
int flag, int flag,
const char *modpath, const char *modpath,
const char *options /* XXX */ __unused) const char *options /* XXX */ __unused)
{ {
pam_chain_t *module, *iterator; pam_chain_t *module, *iterator;
int i; int i;
@ -145,7 +145,7 @@ _pam_add_module(pam_handle_t *pamh,
for (i = 0; i < PAM_NUM_PRIMITIVES; ++i) for (i = 0; i < PAM_NUM_PRIMITIVES; ++i)
module->primitive[i] = module->primitive[i] =
dlsym(module->dlh, _pam_sm_func_name[i]); dlsym(module->dlh, _pam_sm_func_name[i]);
if ((iterator = pamh->chains[chain]) != NULL) { if ((iterator = pamh->chains[chain]) != NULL) {
while (iterator->next != NULL) while (iterator->next != NULL)
iterator = iterator->next; iterator = iterator->next;
@ -157,7 +157,7 @@ _pam_add_module(pam_handle_t *pamh,
} }
#define PAM_CONF_STYLE 0 #define PAM_CONF_STYLE 0
#define PAM_D_STYLE 1 #define PAM_D_STYLE 1
#define MAX_LINE_LEN 1024 #define MAX_LINE_LEN 1024
static int static int
@ -180,7 +180,7 @@ _pam_read_policy_file(pam_handle_t *pamh,
} }
openpam_log(PAM_LOG_DEBUG, "looking for '%s' in %s", openpam_log(PAM_LOG_DEBUG, "looking for '%s' in %s",
service, filename); service, filename);
for (line = 1; fgets(buf, MAX_LINE_LEN, f) != NULL; ++line) { for (line = 1; fgets(buf, MAX_LINE_LEN, f) != NULL; ++line) {
if ((len = strlen(buf)) == 0) if ((len = strlen(buf)) == 0)
continue; continue;
@ -206,7 +206,7 @@ _pam_read_policy_file(pam_handle_t *pamh,
continue; continue;
buf[len] = '\0'; buf[len] = '\0';
p = q = buf; p = q = buf;
/* check service name */ /* check service name */
if (style == PAM_CONF_STYLE) { if (style == PAM_CONF_STYLE) {
for (q = p = buf; *q != '\0' && !isspace(*q); ++q) for (q = p = buf; *q != '\0' && !isspace(*q); ++q)
@ -220,7 +220,7 @@ _pam_read_policy_file(pam_handle_t *pamh,
filename, line, service); filename, line, service);
} }
/* get module type */ /* get module type */
for (p = q; isspace(*p); ++p) for (p = q; isspace(*p); ++p)
/* nothing */; /* nothing */;
@ -266,7 +266,7 @@ _pam_read_policy_file(pam_handle_t *pamh,
filename, line, p); filename, line, p);
continue; continue;
} }
/* get module name */ /* get module name */
for (p = q; isspace(*p); ++p) for (p = q; isspace(*p); ++p)
/* nothing */; /* nothing */;
@ -274,7 +274,7 @@ _pam_read_policy_file(pam_handle_t *pamh,
/* nothing */; /* nothing */;
if (q == p) if (q == p)
goto syntax_error; goto syntax_error;
/* get options */ /* get options */
if (*q != '\0') { if (*q != '\0') {
*q++ = 0; *q++ = 0;
@ -283,8 +283,8 @@ _pam_read_policy_file(pam_handle_t *pamh,
} }
/* /*
* Finally, add the module at the end of the * Finally, add the module at the end of the
* appropriate chain and bump the counter. * appropriate chain and bump the counter.
*/ */
if ((r = _pam_add_module(pamh, chain, flag, p, q)) != if ((r = _pam_add_module(pamh, chain, flag, p, q)) !=
PAM_SUCCESS) PAM_SUCCESS)
@ -302,7 +302,7 @@ _pam_read_policy_file(pam_handle_t *pamh,
if (ferror(f)) if (ferror(f))
openpam_log(PAM_LOG_ERROR, "%s: %m", filename); openpam_log(PAM_LOG_ERROR, "%s: %m", filename);
fclose(f); fclose(f);
return (n); return (n);
} }
@ -313,10 +313,10 @@ static const char *_pam_policy_path[] = {
"/usr/local/etc/pam.d/", "/usr/local/etc/pam.d/",
NULL NULL
}; };
static int static int
_pam_configure_service(pam_handle_t *pamh, _pam_configure_service(pam_handle_t *pamh,
const char *service) const char *service)
{ {
const char **path; const char **path;
char *filename; char *filename;
@ -345,6 +345,6 @@ _pam_configure_service(pam_handle_t *pamh,
if (r > 0) if (r > 0)
return (PAM_SUCCESS); return (PAM_SUCCESS);
} }
return (PAM_SYSTEM_ERR); return (PAM_SYSTEM_ERR);
} }

View File

@ -54,7 +54,7 @@ pam_strerror(pam_handle_t *pamh,
static char unknown[16]; static char unknown[16];
pamh = pamh; pamh = pamh;
switch (error_number) { switch (error_number) {
case PAM_SUCCESS: case PAM_SUCCESS:
return ("success"); return ("success");

View File

@ -40,7 +40,7 @@ int
pam_sm_authenticate(pam_handle_t *pamh, int flags, pam_sm_authenticate(pam_handle_t *pamh, int flags,
int argc, const char *argv[]) int argc, const char *argv[])
{ {
return (PAM_AUTH_ERR); return (PAM_AUTH_ERR);
} }
@ -48,7 +48,7 @@ int
pam_sm_setcred(pam_handle_t *pamh, int flags, pam_sm_setcred(pam_handle_t *pamh, int flags,
int argc, const char *argv[]) int argc, const char *argv[])
{ {
return (PAM_PERM_DENIED); return (PAM_PERM_DENIED);
} }
@ -56,7 +56,7 @@ int
pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, pam_sm_acct_mgmt(pam_handle_t *pamh, int flags,
int argc, const char *argv[]) int argc, const char *argv[])
{ {
return (PAM_AUTH_ERR); return (PAM_AUTH_ERR);
} }

View File

@ -40,7 +40,7 @@ int
pam_sm_authenticate(pam_handle_t *pamh, int flags, pam_sm_authenticate(pam_handle_t *pamh, int flags,
int argc, const char *argv[]) int argc, const char *argv[])
{ {
return (PAM_SUCCESS); return (PAM_SUCCESS);
} }
@ -48,7 +48,7 @@ int
pam_sm_setcred(pam_handle_t *pamh, int flags, pam_sm_setcred(pam_handle_t *pamh, int flags,
int argc, const char *argv[]) int argc, const char *argv[])
{ {
return (PAM_SUCCESS); return (PAM_SUCCESS);
} }
@ -56,7 +56,7 @@ int
pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, pam_sm_acct_mgmt(pam_handle_t *pamh, int flags,
int argc, const char *argv[]) int argc, const char *argv[])
{ {
return (PAM_SUCCESS); return (PAM_SUCCESS);
} }