summaryrefslogtreecommitdiff
path: root/libpam_misc/help_env.c
diff options
context:
space:
mode:
authorSteve Langasek <steve.langasek@ubuntu.com>2019-01-03 12:44:11 -0800
committerSteve Langasek <steve.langasek@ubuntu.com>2019-01-03 12:44:11 -0800
commitefd31890b5ed496a5a00c08a262da240e66a4ddc (patch)
tree22a7aab22b3a491bb58df250d7d6409e0c160bcc /libpam_misc/help_env.c
parent067affee9267fa0d1c21835182ba639ba33e820f (diff)
New upstream version 0.76
Diffstat (limited to 'libpam_misc/help_env.c')
-rw-r--r--libpam_misc/help_env.c105
1 files changed, 0 insertions, 105 deletions
diff --git a/libpam_misc/help_env.c b/libpam_misc/help_env.c
deleted file mode 100644
index 9f66156e..00000000
--- a/libpam_misc/help_env.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * $Id$
- *
- * This file was written by Andrew G. Morgan <morgan@parc.power.net>
- *
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <security/pam_misc.h>
-
-/*
- * This is a useful function for dumping the Linux-PAM environment
- * into some local memory, prior to it all getting lost when pam_end()
- * is called.
- *
- * Initially it was assumed that libpam did not do this part correctly
- * (based on a loose email definition). The X/Open XSSO spec makes it
- * clear that this function is a duplicate of the one already in
- * libpam and therefore unnecessary. IT WILL BE COMPLETELY REMOVED
- * IN libpam_misc 1.0 */
-
-char **pam_misc_copy_env(pam_handle_t *pamh);
-char **pam_misc_copy_env(pam_handle_t *pamh)
-{
- return pam_getenvlist(pamh);
-}
-
-/*
- * This function should be used to carefully dispose of the copied
- * environment.
- *
- * usage: env = pam_misc_drop_env(env);
- */
-
-char **pam_misc_drop_env(char **dump)
-{
- int i;
-
- for (i=0; dump[i] != NULL; ++i) {
- D(("dump[%d]=`%s'", i, dump[i]));
- _pam_overwrite(dump[i]);
- _pam_drop(dump[i]);
- }
- _pam_drop(dump);
-
- return NULL;
-}
-
-/*
- * This function takes the supplied environment and uploads it to be
- * the PAM one.
- */
-
-int pam_misc_paste_env(pam_handle_t *pamh, const char * const * user_env)
-{
- for (; user_env && *user_env; ++user_env) {
- int retval;
-
- D(("uploading: %s", *user_env));
- retval = pam_putenv(pamh, *user_env);
- if (retval != PAM_SUCCESS) {
- D(("error setting %s: %s", *user_env, pam_strerror(pamh,retval)));
- return retval;
- }
- }
- D(("done."));
- return PAM_SUCCESS;
-}
-
-/*
- * This is a wrapper to make pam behave in the way that setenv() does.
- */
-
-int pam_misc_setenv(pam_handle_t *pamh, const char *name
- , const char *value, int readonly)
-{
- char *tmp;
- int retval;
-
- if (readonly) {
- const char *etmp;
-
- /* we check if the variable is there already */
- etmp = pam_getenv(pamh, name);
- if (etmp != NULL) {
- D(("failed to set readonly variable: %s", name));
- return PAM_PERM_DENIED; /* not allowed to overwrite */
- }
- }
- tmp = malloc(2+strlen(name)+strlen(value));
- if (tmp != NULL) {
- sprintf(tmp,"%s=%s",name,value);
- D(("pam_putt()ing: %s", tmp));
- retval = pam_putenv(pamh, tmp);
- _pam_overwrite(tmp); /* purge */
- _pam_drop(tmp); /* forget */
- } else {
- D(("malloc failure"));
- retval = PAM_BUF_ERR;
- }
-
- return retval;
-}