|
Tomáš Mráz |
993dd1 |
Written-by: Nalin Dahyabhai <nalin@redhat.com>
|
|
Tomáš Mráz |
993dd1 |
Reviewed-by: Tomas Mraz <tmraz@redhat.com>
|
|
Tomáš Mráz |
ec5276 |
diff -up openssh-5.1p1/auth2-gss.c.gssapi-role openssh-5.1p1/auth2-gss.c
|
|
Tomáš Mráz |
ec5276 |
--- openssh-5.1p1/auth2-gss.c.gssapi-role 2007-12-02 12:59:45.000000000 +0100
|
|
Tomáš Mráz |
ec5276 |
+++ openssh-5.1p1/auth2-gss.c 2008-07-23 19:18:15.000000000 +0200
|
|
Tomáš Mráz |
ec5276 |
@@ -258,6 +258,7 @@ input_gssapi_mic(int type, u_int32_t ple
|
|
Tomáš Mráz |
993dd1 |
Authctxt *authctxt = ctxt;
|
|
Tomáš Mráz |
993dd1 |
Gssctxt *gssctxt;
|
|
Tomáš Mráz |
993dd1 |
int authenticated = 0;
|
|
Tomáš Mráz |
993dd1 |
+ char *micuser;
|
|
Tomáš Mráz |
993dd1 |
Buffer b;
|
|
Tomáš Mráz |
993dd1 |
gss_buffer_desc mic, gssbuf;
|
|
Tomáš Mráz |
993dd1 |
u_int len;
|
|
Tomáš Mráz |
ec5276 |
@@ -270,7 +271,11 @@ input_gssapi_mic(int type, u_int32_t ple
|
|
Tomáš Mráz |
993dd1 |
mic.value = packet_get_string(&len;;
|
|
Tomáš Mráz |
993dd1 |
mic.length = len;
|
|
Tomáš Mráz |
993dd1 |
|
|
Tomáš Mráz |
993dd1 |
- ssh_gssapi_buildmic(&b, authctxt->user, authctxt->service,
|
|
Tomáš Mráz |
993dd1 |
+ if (authctxt->role && (strlen(authctxt->role) > 0))
|
|
Tomáš Mráz |
993dd1 |
+ xasprintf(&micuser, "%s/%s", authctxt->user, authctxt->role);
|
|
Tomáš Mráz |
993dd1 |
+ else
|
|
Tomáš Mráz |
993dd1 |
+ micuser = authctxt->user;
|
|
Tomáš Mráz |
993dd1 |
+ ssh_gssapi_buildmic(&b, micuser, authctxt->service,
|
|
Tomáš Mráz |
993dd1 |
"gssapi-with-mic");
|
|
Tomáš Mráz |
993dd1 |
|
|
Tomáš Mráz |
993dd1 |
gssbuf.value = buffer_ptr(&b);
|
|
Tomáš Mráz |
ec5276 |
@@ -282,6 +287,8 @@ input_gssapi_mic(int type, u_int32_t ple
|
|
Tomáš Mráz |
ec5276 |
logit("GSSAPI MIC check failed");
|
|
Tomáš Mráz |
993dd1 |
|
|
Tomáš Mráz |
993dd1 |
buffer_free(&b);
|
|
Tomáš Mráz |
993dd1 |
+ if (micuser != authctxt->user)
|
|
Tomáš Mráz |
993dd1 |
+ xfree(micuser);
|
|
Tomáš Mráz |
993dd1 |
xfree(mic.value);
|
|
Tomáš Mráz |
993dd1 |
|
|
Tomáš Mráz |
993dd1 |
authctxt->postponed = 0;
|