diff options
author | Nicolás Reynolds <fauno@endefensadelsl.org> | 2013-05-15 21:35:07 -0300 |
---|---|---|
committer | Nicolás Reynolds <fauno@endefensadelsl.org> | 2013-05-15 21:35:07 -0300 |
commit | 1a65caeb80e2cc8c7b39262d72255124d0c8614e (patch) | |
tree | fb2047cbeaa71fabba55e68dc8f5d4838fb5018c /community/lxdm/lxdm-0.4.1-pam-env-vars.patch | |
parent | 9f7fb9c12e84f20cd108b933f1a51e216f76cd98 (diff) | |
parent | b90f83b99150003a2022c3a4bbad90b12eb56b7e (diff) |
Merge branch 'master' of gparabola:abslibre-mips64el
Diffstat (limited to 'community/lxdm/lxdm-0.4.1-pam-env-vars.patch')
-rw-r--r-- | community/lxdm/lxdm-0.4.1-pam-env-vars.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/community/lxdm/lxdm-0.4.1-pam-env-vars.patch b/community/lxdm/lxdm-0.4.1-pam-env-vars.patch new file mode 100644 index 000000000..ab8605ff1 --- /dev/null +++ b/community/lxdm/lxdm-0.4.1-pam-env-vars.patch @@ -0,0 +1,50 @@ +diff --git a/src/lxdm.c b/src/lxdm.c +index 369aedf..cd1d486 100644 +--- a/src/lxdm.c ++++ b/src/lxdm.c +@@ -935,16 +935,23 @@ void setup_pam_session(LXSession *s,struct passwd *pw,char *session_name) + g_warning( "pam open session error \"%s\"\n", pam_strerror(s->pamh, err)); + } + +-void append_pam_environ(pam_handle_t *pamh,char **env) ++static char **append_pam_environ(pam_handle_t *pamh,char **env) + { +- int i,j,n; ++ int i,j,n,a; + char **penv; +- if(!pamh) return; ++ if(!pamh) return env; + penv=pam_getenvlist(pamh); +- if(!penv) return; ++ if(!penv) return env; ++ a=g_strv_length(penv); ++ if(a==0) ++ { ++ free(penv); ++ return env; ++ } ++ env=g_renew(char *,env,g_strv_length(env)+1+a+10); + for(i=0;penv[i]!=NULL;i++) + { +- //printf("PAM %s\n",penv[i]); ++ fprintf(stderr,"PAM %s\n",penv[i]); + n=strcspn(penv[i],"=")+1; + for(j=0;env[j]!=NULL;j++) + { +@@ -960,6 +967,7 @@ void append_pam_environ(pam_handle_t *pamh,char **env) + free(penv[i]); + } + free(penv); ++ return env; + } + + #endif +@@ -1540,7 +1548,7 @@ void lxdm_do_login(struct passwd *pw, char *session, char *lang, char *option) + if(s->child==0) + { + #if HAVE_LIBPAM +- append_pam_environ(s->pamh,env); ++ env=append_pam_environ(s->pamh,env); + pam_end(s->pamh,0); + #endif + switch_user(pw, session_exec, env); |