Instrument entry and exit points.

git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@187 185d5e19-27fe-0310-9dcf-9bff6b9f3609
This commit is contained in:
Dag-Erling Smørgrav 2002-12-12 17:06:29 +00:00
parent bf8598063a
commit 20a7a7ae90
44 changed files with 217 additions and 180 deletions

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/openpam_borrow_cred.c#2 $ * $P4: //depot/projects/openpam/lib/openpam_borrow_cred.c#3 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -57,30 +57,31 @@ openpam_borrow_cred(pam_handle_t *pamh,
struct pam_saved_cred *scred; struct pam_saved_cred *scred;
int r; int r;
ENTER();
if (geteuid() != 0) if (geteuid() != 0)
return (PAM_PERM_DENIED); RETURNC(PAM_PERM_DENIED);
scred = calloc(1, sizeof *scred); scred = calloc(1, sizeof *scred);
if (scred == NULL) if (scred == NULL)
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
scred->euid = geteuid(); scred->euid = geteuid();
scred->egid = getegid(); scred->egid = getegid();
r = getgroups(NGROUPS_MAX, scred->groups); r = getgroups(NGROUPS_MAX, scred->groups);
if (r == -1) { if (r == -1) {
free(scred); free(scred);
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
} }
scred->ngroups = r; scred->ngroups = r;
r = pam_set_data(pamh, PAM_SAVED_CRED, scred, &openpam_free_data); r = pam_set_data(pamh, PAM_SAVED_CRED, scred, &openpam_free_data);
if (r != PAM_SUCCESS) { if (r != PAM_SUCCESS) {
free(scred); free(scred);
return (r); RETURNC(r);
} }
if (initgroups(pwd->pw_name, pwd->pw_gid) == -1 || if (initgroups(pwd->pw_name, pwd->pw_gid) == -1 ||
setegid(pwd->pw_gid) == -1 || seteuid(pwd->pw_uid) == -1) { setegid(pwd->pw_gid) == -1 || seteuid(pwd->pw_uid) == -1) {
openpam_restore_cred(pamh); openpam_restore_cred(pamh);
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
} }
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/openpam_findenv.c#8 $ * $P4: //depot/projects/openpam/lib/openpam_findenv.c#9 $
*/ */
#include <string.h> #include <string.h>
@ -53,14 +53,14 @@ openpam_findenv(pam_handle_t *pamh,
{ {
int i; int i;
ENTER();
if (pamh == NULL) if (pamh == NULL)
return (-1); RETURNI(-1);
for (i = 0; i < pamh->env_count; ++i) for (i = 0; i < pamh->env_count; ++i)
if (strncmp(pamh->env[i], name, len) == 0 && if (strncmp(pamh->env[i], name, len) == 0 &&
pamh->env[i][len] == '=') pamh->env[i][len] == '=')
return (i); RETURNI(i);
return (-1); RETURNI(-1);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/openpam_free_data.c#2 $ * $P4: //depot/projects/openpam/lib/openpam_free_data.c#3 $
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -50,10 +50,12 @@
void void
openpam_free_data(pam_handle_t *pamh, void *data, int status) openpam_free_data(pam_handle_t *pamh, void *data, int status)
{ {
/* silence compiler warnings */
pamh = pamh; ENTER();
status = status; (void)pamh;
(void)status;
free(data); free(data);
RETURNV();
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/openpam_get_option.c#4 $ * $P4: //depot/projects/openpam/lib/openpam_get_option.c#5 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -57,19 +57,20 @@ openpam_get_option(pam_handle_t *pamh,
size_t len; size_t len;
int i; int i;
ENTER();
if (pamh == NULL || pamh->current == NULL || option == NULL) if (pamh == NULL || pamh->current == NULL || option == NULL)
return (NULL); RETURNS(NULL);
cur = pamh->current; cur = pamh->current;
len = strlen(option); len = strlen(option);
for (i = 0; i < cur->optc; ++i) { for (i = 0; i < cur->optc; ++i) {
if (strncmp(cur->optv[i], option, len) == 0) { if (strncmp(cur->optv[i], option, len) == 0) {
if (cur->optv[i][len] == '\0') if (cur->optv[i][len] == '\0')
return (&cur->optv[i][len]); RETURNS(&cur->optv[i][len]);
else if (cur->optv[i][len] == '=') else if (cur->optv[i][len] == '=')
return (&cur->optv[i][len + 1]); RETURNS(&cur->optv[i][len + 1]);
} }
} }
return (NULL); RETURNS(NULL);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/openpam_log.c#16 $ * $P4: //depot/projects/openpam/lib/openpam_log.c#17 $
*/ */
#include <ctype.h> #include <ctype.h>
@ -64,9 +64,10 @@ _openpam_log(int level, const char *func, const char *fmt, ...)
case PAM_LOG_DEBUG: case PAM_LOG_DEBUG:
#ifndef DEBUG #ifndef DEBUG
return; return;
#endif #else
priority = LOG_DEBUG; priority = LOG_DEBUG;
break; break;
#endif
case PAM_LOG_VERBOSE: case PAM_LOG_VERBOSE:
priority = LOG_INFO; priority = LOG_INFO;
break; break;
@ -109,9 +110,10 @@ openpam_log(int level, const char *fmt, ...)
case PAM_LOG_DEBUG: case PAM_LOG_DEBUG:
#ifndef DEBUG #ifndef DEBUG
return; return;
#endif #else
priority = LOG_DEBUG; priority = LOG_DEBUG;
break; break;
#endif
case PAM_LOG_VERBOSE: case PAM_LOG_VERBOSE:
priority = LOG_INFO; priority = LOG_INFO;
break; break;

View File

@ -31,13 +31,14 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/openpam_nullconv.c#3 $ * $P4: //depot/projects/openpam/lib/openpam_nullconv.c#4 $
*/ */
#include <sys/types.h> #include <sys/types.h>
#include <security/pam_appl.h> #include <security/pam_appl.h>
#include <security/openpam.h>
#include "openpam_impl.h"
/* /*
* OpenPAM extension * OpenPAM extension
@ -52,11 +53,12 @@ openpam_nullconv(int n,
void *data) void *data)
{ {
ENTER();
(void)n; (void)n;
(void)msg; (void)msg;
(void)resp; (void)resp;
(void)data; (void)data;
return (PAM_CONV_ERR); RETURNC(PAM_CONV_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/openpam_restore_cred.c#2 $ * $P4: //depot/projects/openpam/lib/openpam_restore_cred.c#3 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -56,17 +56,18 @@ openpam_restore_cred(pam_handle_t *pamh)
struct pam_saved_cred *scred; struct pam_saved_cred *scred;
int r; int r;
ENTER();
r = pam_get_data(pamh, PAM_SAVED_CRED, (const void **)&scred); r = pam_get_data(pamh, PAM_SAVED_CRED, (const void **)&scred);
if (r != PAM_SUCCESS) if (r != PAM_SUCCESS)
return (r); RETURNC(r);
if (scred == NULL) if (scred == NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
if (seteuid(scred->euid) == -1 || if (seteuid(scred->euid) == -1 ||
setgroups(scred->ngroups, scred->groups) == -1 || setgroups(scred->ngroups, scred->groups) == -1 ||
setegid(scred->egid) == -1) setegid(scred->egid) == -1)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
pam_set_data(pamh, PAM_SAVED_CRED, NULL, NULL); pam_set_data(pamh, PAM_SAVED_CRED, NULL, NULL);
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/openpam_set_option.c#5 $ * $P4: //depot/projects/openpam/lib/openpam_set_option.c#6 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -61,8 +61,9 @@ openpam_set_option(pam_handle_t *pamh,
size_t len; size_t len;
int i; int i;
ENTER();
if (pamh == NULL || pamh->current == NULL || option == NULL) if (pamh == NULL || pamh->current == NULL || option == NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
cur = pamh->current; cur = pamh->current;
for (len = 0; option[len] != '\0'; ++len) for (len = 0; option[len] != '\0'; ++len)
if (option[len] == '=') if (option[len] == '=')
@ -75,21 +76,21 @@ openpam_set_option(pam_handle_t *pamh,
if (value == NULL) { if (value == NULL) {
/* remove */ /* remove */
if (i == cur->optc) if (i == cur->optc)
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
for (free(cur->optv[i]); i < cur->optc; ++i) for (free(cur->optv[i]); i < cur->optc; ++i)
cur->optv[i] = cur->optv[i + 1]; cur->optv[i] = cur->optv[i + 1];
cur->optv[i] = NULL; cur->optv[i] = NULL;
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
} }
if ((opt = malloc(len + strlen(value) + 2)) == NULL) if ((opt = malloc(len + strlen(value) + 2)) == NULL)
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
sprintf(opt, "%.*s=%s", (int)len, option, value); sprintf(opt, "%.*s=%s", (int)len, option, value);
if (i == cur->optc) { if (i == cur->optc) {
/* add */ /* add */
optv = realloc(cur->optv, sizeof(char *) * (cur->optc + 2)); optv = realloc(cur->optv, sizeof(char *) * (cur->optc + 2));
if (optv == NULL) { if (optv == NULL) {
free(opt); free(opt);
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
} }
optv[i] = opt; optv[i] = opt;
optv[i + 1] = NULL; optv[i + 1] = NULL;
@ -100,7 +101,7 @@ openpam_set_option(pam_handle_t *pamh,
free(cur->optv[i]); free(cur->optv[i]);
cur->optv[i] = opt; cur->optv[i] = opt;
} }
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/openpam_ttyconv.c#13 $ * $P4: //depot/projects/openpam/lib/openpam_ttyconv.c#14 $
*/ */
#include <sys/types.h> #include <sys/types.h>
@ -46,7 +46,8 @@
#include <unistd.h> #include <unistd.h>
#include <security/pam_appl.h> #include <security/pam_appl.h>
#include <security/openpam.h>
#include "openpam_impl.h"
int openpam_ttyconv_timeout = 0; int openpam_ttyconv_timeout = 0;
static jmp_buf jmpenv; static jmp_buf jmpenv;
@ -139,11 +140,12 @@ openpam_ttyconv(int n,
{ {
int i; int i;
data = data; ENTER();
(void)data;
if (n <= 0 || n > PAM_MAX_NUM_MSG) if (n <= 0 || n > PAM_MAX_NUM_MSG)
return (PAM_CONV_ERR); RETURNC(PAM_CONV_ERR);
if ((*resp = calloc(n, sizeof **resp)) == NULL) if ((*resp = calloc(n, sizeof **resp)) == NULL)
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
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;
@ -174,13 +176,13 @@ openpam_ttyconv(int n,
goto fail; goto fail;
} }
} }
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
fail: fail:
while (i) while (i)
free(resp[--i]); free(resp[--i]);
free(*resp); free(*resp);
*resp = NULL; *resp = NULL;
return (PAM_CONV_ERR); RETURNC(PAM_CONV_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_acct_mgmt.c#9 $ * $P4: //depot/projects/openpam/lib/pam_acct_mgmt.c#10 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -51,8 +51,11 @@ int
pam_acct_mgmt(pam_handle_t *pamh, pam_acct_mgmt(pam_handle_t *pamh,
int flags) int flags)
{ {
int pam_err;
return (openpam_dispatch(pamh, PAM_SM_ACCT_MGMT, flags)); ENTER();
pam_err = openpam_dispatch(pamh, PAM_SM_ACCT_MGMT, flags);
RETURNC(pam_err);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_authenticate.c#11 $ * $P4: //depot/projects/openpam/lib/pam_authenticate.c#12 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -53,11 +53,12 @@ pam_authenticate(pam_handle_t *pamh,
{ {
int pam_err; int pam_err;
ENTER();
if (flags & ~(PAM_SILENT|PAM_DISALLOW_NULL_AUTHTOK)) if (flags & ~(PAM_SILENT|PAM_DISALLOW_NULL_AUTHTOK))
return (PAM_SYMBOL_ERR); RETURNC(PAM_SYMBOL_ERR);
pam_err = openpam_dispatch(pamh, PAM_SM_AUTHENTICATE, flags); pam_err = openpam_dispatch(pamh, PAM_SM_AUTHENTICATE, flags);
pam_set_item(pamh, PAM_AUTHTOK, NULL); pam_set_item(pamh, PAM_AUTHTOK, NULL);
return (pam_err); RETURNC(pam_err);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_authenticate_secondary.c#6 $ * $P4: //depot/projects/openpam/lib/pam_authenticate_secondary.c#7 $
*/ */
#include <security/pam_appl.h> #include <security/pam_appl.h>
@ -53,7 +53,8 @@ pam_authenticate_secondary(pam_handle_t *pamh,
int flags) int flags)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_chauthtok.c#12 $ * $P4: //depot/projects/openpam/lib/pam_chauthtok.c#13 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -53,8 +53,9 @@ pam_chauthtok(pam_handle_t *pamh,
{ {
int pam_err; int pam_err;
ENTER();
if (flags & ~(PAM_SILENT|PAM_CHANGE_EXPIRED_AUTHTOK)) if (flags & ~(PAM_SILENT|PAM_CHANGE_EXPIRED_AUTHTOK))
return (PAM_SYMBOL_ERR); RETURNC(PAM_SYMBOL_ERR);
pam_err = openpam_dispatch(pamh, PAM_SM_CHAUTHTOK, pam_err = openpam_dispatch(pamh, PAM_SM_CHAUTHTOK,
flags | PAM_PRELIM_CHECK); flags | PAM_PRELIM_CHECK);
if (pam_err == PAM_SUCCESS) if (pam_err == PAM_SUCCESS)
@ -62,7 +63,7 @@ pam_chauthtok(pam_handle_t *pamh,
flags | PAM_UPDATE_AUTHTOK); flags | PAM_UPDATE_AUTHTOK);
pam_set_item(pamh, PAM_OLDAUTHTOK, NULL); pam_set_item(pamh, PAM_OLDAUTHTOK, NULL);
pam_set_item(pamh, PAM_AUTHTOK, NULL); pam_set_item(pamh, PAM_AUTHTOK, NULL);
return (pam_err); RETURNC(pam_err);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_close_session.c#9 $ * $P4: //depot/projects/openpam/lib/pam_close_session.c#10 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -52,9 +52,10 @@ pam_close_session(pam_handle_t *pamh,
int flags) int flags)
{ {
ENTER();
if (flags & ~(PAM_SILENT)) if (flags & ~(PAM_SILENT))
return (PAM_SYMBOL_ERR); RETURNC(PAM_SYMBOL_ERR);
return (openpam_dispatch(pamh, PAM_SM_CLOSE_SESSION, flags)); RETURNC(openpam_dispatch(pamh, PAM_SM_CLOSE_SESSION, flags));
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_end.c#10 $ * $P4: //depot/projects/openpam/lib/pam_end.c#11 $
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -54,8 +54,9 @@ pam_end(pam_handle_t *pamh,
pam_data_t *dp; pam_data_t *dp;
int i; int i;
ENTER();
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
/* clear module data */ /* clear module data */
while ((dp = pamh->module_data) != NULL) { while ((dp = pamh->module_data) != NULL) {
@ -80,7 +81,7 @@ pam_end(pam_handle_t *pamh,
free(pamh); free(pamh);
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_get_authtok.c#19 $ * $P4: //depot/projects/openpam/lib/pam_get_authtok.c#20 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -65,9 +65,9 @@ pam_get_authtok(pam_handle_t *pamh,
char *resp, *resp2; char *resp, *resp2;
int pitem, r, style, twice; int pitem, r, style, twice;
ENTER();
if (pamh == NULL || authtok == NULL) if (pamh == NULL || authtok == NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
*authtok = NULL; *authtok = NULL;
twice = 0; twice = 0;
switch (item) { switch (item) {
@ -86,16 +86,15 @@ pam_get_authtok(pam_handle_t *pamh,
twice = 0; twice = 0;
break; break;
default: default:
return (PAM_SYMBOL_ERR); RETURNC(PAM_SYMBOL_ERR);
} }
if (openpam_get_option(pamh, "try_first_pass") || if (openpam_get_option(pamh, "try_first_pass") ||
openpam_get_option(pamh, "use_first_pass")) { openpam_get_option(pamh, "use_first_pass")) {
r = pam_get_item(pamh, item, (const void **)authtok); r = pam_get_item(pamh, item, (const void **)authtok);
if (r == PAM_SUCCESS && *authtok != NULL) if (r == PAM_SUCCESS && *authtok != NULL)
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
else if (openpam_get_option(pamh, "use_first_pass")) else if (openpam_get_option(pamh, "use_first_pass"))
return (r == PAM_SUCCESS ? PAM_AUTH_ERR : r); RETURNC(r == PAM_SUCCESS ? PAM_AUTH_ERR : r);
} }
if (prompt == NULL) { if (prompt == NULL) {
r = pam_get_item(pamh, pitem, (const void **)&prompt); r = pam_get_item(pamh, pitem, (const void **)&prompt);
@ -106,12 +105,12 @@ pam_get_authtok(pam_handle_t *pamh,
PAM_PROMPT_ECHO_ON : PAM_PROMPT_ECHO_OFF; PAM_PROMPT_ECHO_ON : PAM_PROMPT_ECHO_OFF;
r = pam_prompt(pamh, style, &resp, "%s", prompt); r = pam_prompt(pamh, style, &resp, "%s", prompt);
if (r != PAM_SUCCESS) if (r != PAM_SUCCESS)
return (r); RETURNC(r);
if (twice) { if (twice) {
r = pam_prompt(pamh, style, &resp2, "Retype %s", prompt); r = pam_prompt(pamh, style, &resp2, "Retype %s", prompt);
if (r != PAM_SUCCESS) { if (r != PAM_SUCCESS) {
free(resp); free(resp);
return (r); RETURNC(r);
} }
if (strcmp(resp, resp2) != 0) { if (strcmp(resp, resp2) != 0) {
free(resp); free(resp);
@ -120,12 +119,12 @@ pam_get_authtok(pam_handle_t *pamh,
free(resp2); free(resp2);
} }
if (resp == NULL) if (resp == NULL)
return (PAM_TRY_AGAIN); RETURNC(PAM_TRY_AGAIN);
r = pam_set_item(pamh, item, resp); r = pam_set_item(pamh, item, resp);
free(resp); free(resp);
if (r != PAM_SUCCESS) if (r != PAM_SUCCESS)
return (r); RETURNC(r);
return (pam_get_item(pamh, item, (const void **)authtok)); RETURNC(pam_get_item(pamh, item, (const void **)authtok));
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_get_data.c#8 $ * $P4: //depot/projects/openpam/lib/pam_get_data.c#9 $
*/ */
#include <string.h> #include <string.h>
@ -54,16 +54,15 @@ pam_get_data(pam_handle_t *pamh,
{ {
pam_data_t *dp; pam_data_t *dp;
ENTER();
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
for (dp = pamh->module_data; dp != NULL; dp = dp->next) for (dp = pamh->module_data; dp != NULL; dp = dp->next)
if (strcmp(dp->name, module_data_name) == 0) { if (strcmp(dp->name, module_data_name) == 0) {
*data = dp->data; *data = dp->data;
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
} }
RETURNC(PAM_NO_MODULE_DATA);
return (PAM_NO_MODULE_DATA);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_get_item.c#13 $ * $P4: //depot/projects/openpam/lib/pam_get_item.c#14 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -52,9 +52,10 @@ pam_get_item(pam_handle_t *pamh,
int item_type, int item_type,
const void **item) const void **item)
{ {
if (pamh == NULL)
return (PAM_SYSTEM_ERR);
ENTER();
if (pamh == NULL)
RETURNC(PAM_SYSTEM_ERR);
switch (item_type) { switch (item_type) {
case PAM_SERVICE: case PAM_SERVICE:
case PAM_USER: case PAM_USER:
@ -69,9 +70,9 @@ pam_get_item(pam_handle_t *pamh,
case PAM_OLDAUTHTOK_PROMPT: case PAM_OLDAUTHTOK_PROMPT:
case PAM_REPOSITORY: case PAM_REPOSITORY:
*item = pamh->item[item_type]; *item = pamh->item[item_type];
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
default: default:
return (PAM_SYMBOL_ERR); RETURNC(PAM_SYMBOL_ERR);
} }
} }

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_get_mapped_authtok.c#6 $ * $P4: //depot/projects/openpam/lib/pam_get_mapped_authtok.c#7 $
*/ */
#include <security/pam_appl.h> #include <security/pam_appl.h>
@ -52,7 +52,8 @@ pam_get_mapped_authtok(pam_handle_t *pamh,
unsigned char **target_module_authtok) unsigned char **target_module_authtok)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_get_mapped_username.c#6 $ * $P4: //depot/projects/openpam/lib/pam_get_mapped_username.c#7 $
*/ */
#include <security/pam_appl.h> #include <security/pam_appl.h>
@ -53,7 +53,8 @@ pam_get_mapped_username(pam_handle_t *pamh,
char **target_module_username) char **target_module_username)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_get_user.c#12 $ * $P4: //depot/projects/openpam/lib/pam_get_user.c#13 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -60,12 +60,12 @@ pam_get_user(pam_handle_t *pamh,
char *resp; char *resp;
int r; int r;
ENTER();
if (pamh == NULL || user == NULL) if (pamh == NULL || user == NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
r = pam_get_item(pamh, PAM_USER, (const void **)user); r = pam_get_item(pamh, PAM_USER, (const void **)user);
if (r == PAM_SUCCESS) if (r == PAM_SUCCESS)
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
if (prompt == NULL) { if (prompt == NULL) {
r = pam_get_item(pamh, PAM_USER_PROMPT, (const void **)&prompt); r = pam_get_item(pamh, PAM_USER_PROMPT, (const void **)&prompt);
if (r != PAM_SUCCESS || prompt == NULL) if (r != PAM_SUCCESS || prompt == NULL)
@ -73,12 +73,12 @@ pam_get_user(pam_handle_t *pamh,
} }
r = pam_prompt(pamh, PAM_PROMPT_ECHO_ON, &resp, "%s", prompt); r = pam_prompt(pamh, PAM_PROMPT_ECHO_ON, &resp, "%s", prompt);
if (r != PAM_SUCCESS) if (r != PAM_SUCCESS)
return (r); RETURNC(r);
r = pam_set_item(pamh, PAM_USER, resp); r = pam_set_item(pamh, PAM_USER, resp);
free(resp); free(resp);
if (r != PAM_SUCCESS) if (r != PAM_SUCCESS)
return (r); RETURNC(r);
return (pam_get_item(pamh, PAM_USER, (const void **)user)); RETURNC(pam_get_item(pamh, PAM_USER, (const void **)user));
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_getenv.c#7 $ * $P4: //depot/projects/openpam/lib/pam_getenv.c#8 $
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -54,16 +54,14 @@ pam_getenv(pam_handle_t *pamh,
{ {
int i; int i;
ENTER();
if (pamh == NULL) if (pamh == NULL)
return (NULL); RETURNC(NULL);
/* sanity checks */
if (name == NULL || strchr(name, '=') != NULL) if (name == NULL || strchr(name, '=') != NULL)
return (NULL); RETURNC(NULL);
if ((i = openpam_findenv(pamh, name, strlen(name))) == -1) if ((i = openpam_findenv(pamh, name, strlen(name))) == -1)
return (NULL); RETURNC(NULL);
return (strdup(pamh->env[i])); RETURNC(strdup(pamh->env[i]));
} }
/** /**

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_getenvlist.c#9 $ * $P4: //depot/projects/openpam/lib/pam_getenvlist.c#10 $
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -54,14 +54,14 @@ pam_getenvlist(pam_handle_t *pamh)
char **envlist; char **envlist;
int i; int i;
ENTER();
if (pamh == NULL) if (pamh == NULL)
return (NULL); RETURNP(NULL);
envlist = malloc(sizeof(char *) * (pamh->env_count + 1)); envlist = malloc(sizeof(char *) * (pamh->env_count + 1));
if (envlist == NULL) { if (envlist == NULL) {
openpam_log(PAM_LOG_ERROR, "%s", openpam_log(PAM_LOG_ERROR, "%s",
pam_strerror(pamh, PAM_BUF_ERR)); pam_strerror(pamh, PAM_BUF_ERR));
return (NULL); RETURNP(NULL);
} }
for (i = 0; i < pamh->env_count; ++i) { for (i = 0; i < pamh->env_count; ++i) {
if ((envlist[i] = strdup(pamh->env[i])) == NULL) { if ((envlist[i] = strdup(pamh->env[i])) == NULL) {
@ -70,12 +70,11 @@ pam_getenvlist(pam_handle_t *pamh)
free(envlist); free(envlist);
openpam_log(PAM_LOG_ERROR, "%s", openpam_log(PAM_LOG_ERROR, "%s",
pam_strerror(pamh, PAM_BUF_ERR)); pam_strerror(pamh, PAM_BUF_ERR));
return (NULL); RETURNP(NULL);
} }
} }
envlist[i] = NULL; envlist[i] = NULL;
openpam_log(PAM_LOG_DEBUG, "returning %d variables\n", pamh->env_count); RETURNP(envlist);
return (envlist);
} }
/** /**

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_open_session.c#9 $ * $P4: //depot/projects/openpam/lib/pam_open_session.c#10 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -52,9 +52,10 @@ pam_open_session(pam_handle_t *pamh,
int flags) int flags)
{ {
ENTER();
if (flags & ~(PAM_SILENT)) if (flags & ~(PAM_SILENT))
return (PAM_SYMBOL_ERR); RETURNC(PAM_SYMBOL_ERR);
return (openpam_dispatch(pamh, PAM_SM_OPEN_SESSION, flags)); RETURNC(openpam_dispatch(pamh, PAM_SM_OPEN_SESSION, flags));
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_putenv.c#8 $ * $P4: //depot/projects/openpam/lib/pam_putenv.c#9 $
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -55,20 +55,21 @@ pam_putenv(pam_handle_t *pamh,
char **env, *p; char **env, *p;
int i; int i;
ENTER();
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
/* sanity checks */ /* sanity checks */
if (namevalue == NULL || (p = strchr(namevalue, '=')) == NULL) if (namevalue == NULL || (p = strchr(namevalue, '=')) == NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
/* see if the variable is already in the environment */ /* see if the variable is already in the environment */
if ((i = openpam_findenv(pamh, namevalue, p - namevalue)) != -1) { if ((i = openpam_findenv(pamh, namevalue, p - namevalue)) != -1) {
if ((p = strdup(namevalue)) == NULL) if ((p = strdup(namevalue)) == NULL)
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
free(pamh->env[i]); free(pamh->env[i]);
pamh->env[i] = p; pamh->env[i] = p;
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
} }
/* grow the environment list if necessary */ /* grow the environment list if necessary */
@ -76,16 +77,16 @@ pam_putenv(pam_handle_t *pamh,
env = realloc(pamh->env, env = realloc(pamh->env,
sizeof(char *) * (pamh->env_size * 2 + 1)); sizeof(char *) * (pamh->env_size * 2 + 1));
if (env == NULL) if (env == NULL)
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
pamh->env = env; pamh->env = env;
pamh->env_size = pamh->env_size * 2 + 1; pamh->env_size = pamh->env_size * 2 + 1;
} }
/* add the variable at the end */ /* add the variable at the end */
if ((pamh->env[pamh->env_count] = strdup(namevalue)) == NULL) if ((pamh->env[pamh->env_count] = strdup(namevalue)) == NULL)
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
++pamh->env_count; ++pamh->env_count;
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_set_data.c#10 $ * $P4: //depot/projects/openpam/lib/pam_set_data.c#11 $
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -58,30 +58,29 @@ pam_set_data(pam_handle_t *pamh,
{ {
pam_data_t *dp; pam_data_t *dp;
ENTER();
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
for (dp = pamh->module_data; dp != NULL; dp = dp->next) { for (dp = pamh->module_data; dp != NULL; dp = dp->next) {
if (strcmp(dp->name, module_data_name) == 0) { if (strcmp(dp->name, module_data_name) == 0) {
if (dp->cleanup) if (dp->cleanup)
(dp->cleanup)(pamh, dp->data, PAM_SUCCESS); (dp->cleanup)(pamh, dp->data, PAM_SUCCESS);
dp->data = data; dp->data = data;
dp->cleanup = cleanup; dp->cleanup = cleanup;
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
} }
} }
if ((dp = malloc(sizeof *dp)) == NULL) if ((dp = malloc(sizeof *dp)) == NULL)
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
if ((dp->name = strdup(module_data_name)) == NULL) { if ((dp->name = strdup(module_data_name)) == NULL) {
free(dp); free(dp);
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
} }
dp->data = data; dp->data = data;
dp->cleanup = cleanup; dp->cleanup = cleanup;
dp->next = pamh->module_data; dp->next = pamh->module_data;
pamh->module_data = dp; pamh->module_data = dp;
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_set_item.c#15 $ * $P4: //depot/projects/openpam/lib/pam_set_item.c#16 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -58,9 +58,9 @@ pam_set_item(pam_handle_t *pamh,
void **slot, *tmp; void **slot, *tmp;
size_t nsize, osize; size_t nsize, osize;
ENTER();
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
slot = &pamh->item[item_type]; slot = &pamh->item[item_type];
switch (item_type) { switch (item_type) {
case PAM_SERVICE: case PAM_SERVICE:
@ -85,7 +85,7 @@ pam_set_item(pam_handle_t *pamh,
osize = nsize = sizeof(struct pam_conv); osize = nsize = sizeof(struct pam_conv);
break; break;
default: default:
return (PAM_SYMBOL_ERR); RETURNC(PAM_SYMBOL_ERR);
} }
if (*slot != NULL) { if (*slot != NULL) {
memset(*slot, 0xd0, osize); memset(*slot, 0xd0, osize);
@ -93,13 +93,13 @@ pam_set_item(pam_handle_t *pamh,
} }
if (item != NULL) { if (item != NULL) {
if ((tmp = malloc(nsize)) == NULL) if ((tmp = malloc(nsize)) == NULL)
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
memcpy(tmp, item, nsize); memcpy(tmp, item, nsize);
} else { } else {
tmp = NULL; tmp = NULL;
} }
*slot = tmp; *slot = tmp;
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_set_mapped_authtok.c#6 $ * $P4: //depot/projects/openpam/lib/pam_set_mapped_authtok.c#7 $
*/ */
#include <security/pam_appl.h> #include <security/pam_appl.h>
@ -52,7 +52,8 @@ pam_set_mapped_authtok(pam_handle_t *pamh,
const char *target_authn_domain) const char *target_authn_domain)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_set_mapped_username.c#6 $ * $P4: //depot/projects/openpam/lib/pam_set_mapped_username.c#7 $
*/ */
#include <security/pam_appl.h> #include <security/pam_appl.h>
@ -53,7 +53,8 @@ pam_set_mapped_username(pam_handle_t *pamh,
char *target_authn_domain) char *target_authn_domain)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_setcred.c#10 $ * $P4: //depot/projects/openpam/lib/pam_setcred.c#11 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -52,11 +52,12 @@ pam_setcred(pam_handle_t *pamh,
int flags) int flags)
{ {
ENTER();
if (flags & ~(PAM_SILENT|PAM_ESTABLISH_CRED|PAM_DELETE_CRED| if (flags & ~(PAM_SILENT|PAM_ESTABLISH_CRED|PAM_DELETE_CRED|
PAM_REINITIALIZE_CRED|PAM_REFRESH_CRED)) PAM_REINITIALIZE_CRED|PAM_REFRESH_CRED))
return (PAM_SYMBOL_ERR); RETURNC(PAM_SYMBOL_ERR);
/* XXX enforce exclusivity */ /* XXX enforce exclusivity */
return (openpam_dispatch(pamh, PAM_SM_SETCRED, flags)); RETURNC(openpam_dispatch(pamh, PAM_SM_SETCRED, flags));
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_setenv.c#7 $ * $P4: //depot/projects/openpam/lib/pam_setenv.c#8 $
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -58,24 +58,25 @@ pam_setenv(pam_handle_t *pamh,
char *env; char *env;
int r; int r;
ENTER();
if (pamh == NULL) if (pamh == NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
/* sanity checks */ /* sanity checks */
if (name == NULL || value == NULL || strchr(name, '=') != NULL) if (name == NULL || value == NULL || strchr(name, '=') != NULL)
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
/* is it already there? */ /* is it already there? */
if (!overwrite && openpam_findenv(pamh, name, strlen(name)) != -1) if (!overwrite && openpam_findenv(pamh, name, strlen(name)) != -1)
return (PAM_SUCCESS); RETURNC(PAM_SUCCESS);
/* set it... */ /* set it... */
if ((env = malloc(strlen(name) + strlen(value) + 2)) == NULL) if ((env = malloc(strlen(name) + strlen(value) + 2)) == NULL)
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
sprintf(env, "%s=%s", name, value); sprintf(env, "%s=%s", name, value);
r = pam_putenv(pamh, env); r = pam_putenv(pamh, env);
free(env); free(env);
return (r); RETURNC(r);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_sm_acct_mgmt.c#4 $ * $P4: //depot/projects/openpam/lib/pam_sm_acct_mgmt.c#5 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -53,7 +53,8 @@ pam_sm_acct_mgmt(pam_handle_t *pamh,
const char **argv) const char **argv)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_sm_authenticate.c#4 $ * $P4: //depot/projects/openpam/lib/pam_sm_authenticate.c#5 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -53,7 +53,8 @@ pam_sm_authenticate(pam_handle_t *pamh,
const char **argv) const char **argv)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_sm_authenticate_secondary.c#4 $ * $P4: //depot/projects/openpam/lib/pam_sm_authenticate_secondary.c#5 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -58,7 +58,8 @@ pam_sm_authenticate_secondary(pam_handle_t *pamh,
const char **argv) const char **argv)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_sm_chauthtok.c#5 $ * $P4: //depot/projects/openpam/lib/pam_sm_chauthtok.c#6 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -53,7 +53,8 @@ pam_sm_chauthtok(pam_handle_t *pamh,
const char **argv) const char **argv)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_sm_close_session.c#4 $ * $P4: //depot/projects/openpam/lib/pam_sm_close_session.c#5 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -53,7 +53,8 @@ pam_sm_close_session(pam_handle_t *pamh,
const char **argv) const char **argv)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_sm_get_mapped_authtok.c#4 $ * $P4: //depot/projects/openpam/lib/pam_sm_get_mapped_authtok.c#5 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -57,7 +57,8 @@ pam_sm_get_mapped_authtok(pam_handle_t *pamh,
char *argv) char *argv)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_sm_get_mapped_username.c#4 $ * $P4: //depot/projects/openpam/lib/pam_sm_get_mapped_username.c#5 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -58,7 +58,8 @@ pam_sm_get_mapped_username(pam_handle_t *pamh,
const char **argv) const char **argv)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_sm_open_session.c#4 $ * $P4: //depot/projects/openpam/lib/pam_sm_open_session.c#5 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -53,7 +53,8 @@ pam_sm_open_session(pam_handle_t *pamh,
const char **argv) const char **argv)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_sm_set_mapped_authtok.c#4 $ * $P4: //depot/projects/openpam/lib/pam_sm_set_mapped_authtok.c#5 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -57,7 +57,8 @@ pam_sm_set_mapped_authtok(pam_handle_t *pamh,
const char *argv) const char *argv)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_sm_set_mapped_username.c#4 $ * $P4: //depot/projects/openpam/lib/pam_sm_set_mapped_username.c#5 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -55,7 +55,8 @@ pam_sm_set_mapped_username(pam_handle_t *pamh,
const char **argv) const char **argv)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_sm_setcred.c#4 $ * $P4: //depot/projects/openpam/lib/pam_sm_setcred.c#5 $
*/ */
#include <sys/param.h> #include <sys/param.h>
@ -53,7 +53,8 @@ pam_sm_setcred(pam_handle_t *pamh,
const char **argv) const char **argv)
{ {
return (PAM_SYSTEM_ERR); ENTER();
RETURNC(PAM_SYSTEM_ERR);
} }

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_start.c#16 $ * $P4: //depot/projects/openpam/lib/pam_start.c#17 $
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -56,8 +56,9 @@ pam_start(const char *service,
struct pam_handle *ph; struct pam_handle *ph;
int r; int r;
ENTER();
if ((ph = calloc(1, sizeof *ph)) == NULL) if ((ph = calloc(1, sizeof *ph)) == NULL)
return (PAM_BUF_ERR); RETURNC(PAM_BUF_ERR);
if ((r = pam_set_item(ph, PAM_SERVICE, service)) != PAM_SUCCESS) if ((r = pam_set_item(ph, PAM_SERVICE, service)) != PAM_SUCCESS)
goto fail; goto fail;
if ((r = pam_set_item(ph, PAM_USER, user)) != PAM_SUCCESS) if ((r = pam_set_item(ph, PAM_USER, user)) != PAM_SUCCESS)
@ -71,11 +72,11 @@ pam_start(const char *service,
*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); RETURNC(PAM_SUCCESS);
fail: fail:
pam_end(ph, r); pam_end(ph, r);
return (r); RETURNC(r);
} }
/* /*

View File

@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $P4: //depot/projects/openpam/lib/pam_vprompt.c#7 $ * $P4: //depot/projects/openpam/lib/pam_vprompt.c#8 $
*/ */
#include <stdarg.h> #include <stdarg.h>
@ -39,7 +39,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <security/pam_appl.h> #include <security/pam_appl.h>
#include <security/openpam.h>
#include "openpam_impl.h"
/* /*
* OpenPAM extension * OpenPAM extension
@ -61,12 +62,13 @@ pam_vprompt(pam_handle_t *pamh,
struct pam_conv *conv; struct pam_conv *conv;
int r; int r;
ENTER();
r = pam_get_item(pamh, PAM_CONV, (const void **)&conv); r = pam_get_item(pamh, PAM_CONV, (const void **)&conv);
if (r != PAM_SUCCESS) if (r != PAM_SUCCESS)
return (r); RETURNC(r);
if (conv == NULL) { if (conv == NULL) {
openpam_log(PAM_LOG_ERROR, "no conversation function"); openpam_log(PAM_LOG_ERROR, "no conversation function");
return (PAM_SYSTEM_ERR); RETURNC(PAM_SYSTEM_ERR);
} }
vsnprintf(msgbuf, PAM_MAX_MSG_SIZE, fmt, ap); vsnprintf(msgbuf, PAM_MAX_MSG_SIZE, fmt, ap);
msg.msg_style = style; msg.msg_style = style;
@ -76,7 +78,7 @@ pam_vprompt(pam_handle_t *pamh,
r = (conv->conv)(1, &msgp, &rsp, conv->appdata_ptr); r = (conv->conv)(1, &msgp, &rsp, conv->appdata_ptr);
*resp = rsp == NULL ? NULL : rsp->resp; *resp = rsp == NULL ? NULL : rsp->resp;
free(rsp); free(rsp);
return (r); RETURNC(r);
} }
/* /*