]>
Commit | Line | Data |
---|---|---|
1d13e637 AF |
1 | From 580eabc2c9dfe29d719a026ff8f6ac3d2ead1983 Mon Sep 17 00:00:00 2001 |
2 | From: Andreas Schneider <asn@samba.org> | |
3 | Date: Tue, 8 Sep 2015 16:48:08 +0200 | |
4 | Subject: [PATCH] PATCHSET28: pam_winbind: Fix a segfault if initialization | |
5 | fails | |
6 | ||
7 | BUG: https://bugzilla.samba.org/show_bug.cgi?id=11502 | |
8 | ||
9 | Signed-off-by: Andreas Schneider <asn@samba.org> | |
10 | Reviewed-by: Michael Adam <obnox@samba.org> | |
11 | ||
12 | Autobuild-User(master): Michael Adam <obnox@samba.org> | |
13 | Autobuild-Date(master): Tue Sep 8 21:39:21 CEST 2015 on sn-devel-104 | |
14 | ||
15 | (cherry picked from commit 7d84cd6e40024fd361ea21635f7befed40f0e41f) | |
16 | --- | |
17 | nsswitch/pam_winbind.c | 19 ++++++++----------- | |
18 | 1 file changed, 8 insertions(+), 11 deletions(-) | |
19 | ||
20 | diff --git a/nsswitch/pam_winbind.c b/nsswitch/pam_winbind.c | |
21 | index d126494..cfaa5f1 100644 | |
22 | --- a/nsswitch/pam_winbind.c | |
23 | +++ b/nsswitch/pam_winbind.c | |
24 | @@ -2465,7 +2465,7 @@ static int _pam_delete_cred(pam_handle_t *pamh, int flags, | |
25 | ||
26 | retval = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx); | |
27 | if (retval) { | |
28 | - goto out; | |
29 | + return retval; | |
30 | } | |
31 | ||
32 | _PAM_LOG_FUNCTION_ENTER("_pam_delete_cred", ctx); | |
33 | @@ -2600,7 +2600,7 @@ int pam_sm_authenticate(pam_handle_t *pamh, int flags, | |
34 | ||
35 | retval = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx); | |
36 | if (retval) { | |
37 | - goto out; | |
38 | + return retval; | |
39 | } | |
40 | ||
41 | _PAM_LOG_FUNCTION_ENTER("pam_sm_authenticate", ctx); | |
42 | @@ -2752,7 +2752,7 @@ int pam_sm_setcred(pam_handle_t *pamh, int flags, | |
43 | ||
44 | ret = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx); | |
45 | if (ret) { | |
46 | - goto out; | |
47 | + return ret; | |
48 | } | |
49 | ||
50 | _PAM_LOG_FUNCTION_ENTER("pam_sm_setcred", ctx); | |
51 | @@ -2782,8 +2782,6 @@ int pam_sm_setcred(pam_handle_t *pamh, int flags, | |
52 | break; | |
53 | } | |
54 | ||
55 | - out: | |
56 | - | |
57 | _PAM_LOG_FUNCTION_LEAVE("pam_sm_setcred", ctx, ret); | |
58 | ||
59 | TALLOC_FREE(ctx); | |
60 | @@ -2806,7 +2804,7 @@ int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, | |
61 | ||
62 | ret = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx); | |
63 | if (ret) { | |
64 | - goto out; | |
65 | + return ret; | |
66 | } | |
67 | ||
68 | _PAM_LOG_FUNCTION_ENTER("pam_sm_acct_mgmt", ctx); | |
69 | @@ -2901,7 +2899,7 @@ int pam_sm_open_session(pam_handle_t *pamh, int flags, | |
70 | ||
71 | ret = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx); | |
72 | if (ret) { | |
73 | - goto out; | |
74 | + return ret; | |
75 | } | |
76 | ||
77 | _PAM_LOG_FUNCTION_ENTER("pam_sm_open_session", ctx); | |
78 | @@ -2910,7 +2908,7 @@ int pam_sm_open_session(pam_handle_t *pamh, int flags, | |
79 | /* check and create homedir */ | |
80 | ret = _pam_mkhomedir(ctx); | |
81 | } | |
82 | - out: | |
83 | + | |
84 | _PAM_LOG_FUNCTION_LEAVE("pam_sm_open_session", ctx, ret); | |
85 | ||
86 | TALLOC_FREE(ctx); | |
87 | @@ -2927,12 +2925,11 @@ int pam_sm_close_session(pam_handle_t *pamh, int flags, | |
88 | ||
89 | ret = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx); | |
90 | if (ret) { | |
91 | - goto out; | |
92 | + return ret; | |
93 | } | |
94 | ||
95 | _PAM_LOG_FUNCTION_ENTER("pam_sm_close_session", ctx); | |
96 | ||
97 | -out: | |
98 | _PAM_LOG_FUNCTION_LEAVE("pam_sm_close_session", ctx, ret); | |
99 | ||
100 | TALLOC_FREE(ctx); | |
101 | @@ -3012,7 +3009,7 @@ int pam_sm_chauthtok(pam_handle_t * pamh, int flags, | |
102 | ||
103 | ret = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx); | |
104 | if (ret) { | |
105 | - goto out; | |
106 | + return ret; | |
107 | } | |
108 | ||
109 | _PAM_LOG_FUNCTION_ENTER("pam_sm_chauthtok", ctx); | |
110 | -- | |
111 | 2.5.0 | |
112 |