]> git.pld-linux.org Git - packages/XFree86.git/blob - XFree86-xdm+pam_env.patch
- outdated
[packages/XFree86.git] / XFree86-xdm+pam_env.patch
1 --- XFree86-3.3.3.1/xc/programs/xdm/session.c~  Sat Jun 19 02:25:32 1999
2 +++ XFree86-3.3.3.1/xc/programs/xdm/session.c   Sat Jun 19 04:30:43 1999
3 @@ -699,6 +699,32 @@
4  #endif /* K5AUTH */
5         bzero(passwd, strlen(passwd));
6         SetUserAuthorization (d, verify);
7 +#ifdef USE_PAM
8 +{
9 +       int i, j;
10 +       const char *const *pam_env;
11 +       char *tmp_pam_env;
12 +
13 +       pam_env = (const char *const *) pam_getenvlist((pam_handle_t *) pamh);
14 +
15 +       if (pam_env != NULL) {
16 +               tmp_pam_env = malloc(4096);
17 +               if (tmp_pam_env != NULL) {
18 +                       for (i = 0; pam_env[i]; i++) {
19 +                               Debug("env[%d] = %s\n", i, pam_env[i]);
20 +                               strncpy(tmp_pam_env, pam_env[i], 4095);
21 +                               tmp_pam_env[4095] = 0;
22 +                               j = 0;
23 +                               while (tmp_pam_env[j] != '=')
24 +                                       j++;
25 +                               tmp_pam_env[j] = 0;
26 +                               verify->userEnviron = setEnv(verify->userEnviron, tmp_pam_env, &tmp_pam_env[j + 1]);
27 +                       }
28 +               }
29 +               free(tmp_pam_env);
30 +       }
31 +}
32 +#endif
33         home = getEnv (verify->userEnviron, "HOME");
34         if (home)
35             if (chdir (home) == -1) {
This page took 0.02442 seconds and 3 git commands to generate.