diff options
Diffstat (limited to 'net/sunrpc/auth_gss/auth_gss.c')
-rw-r--r-- | net/sunrpc/auth_gss/auth_gss.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c index d64a58b8ed33..6654c8534d32 100644 --- a/net/sunrpc/auth_gss/auth_gss.c +++ b/net/sunrpc/auth_gss/auth_gss.c | |||
@@ -377,11 +377,12 @@ static void gss_encode_v0_msg(struct gss_upcall_msg *gss_msg) | |||
377 | static void gss_encode_v1_msg(struct gss_upcall_msg *gss_msg, | 377 | static void gss_encode_v1_msg(struct gss_upcall_msg *gss_msg, |
378 | struct rpc_clnt *clnt, int machine_cred) | 378 | struct rpc_clnt *clnt, int machine_cred) |
379 | { | 379 | { |
380 | struct gss_api_mech *mech = gss_msg->auth->mech; | ||
380 | char *p = gss_msg->databuf; | 381 | char *p = gss_msg->databuf; |
381 | int len = 0; | 382 | int len = 0; |
382 | 383 | ||
383 | gss_msg->msg.len = sprintf(gss_msg->databuf, "mech=%s uid=%d ", | 384 | gss_msg->msg.len = sprintf(gss_msg->databuf, "mech=%s uid=%d ", |
384 | gss_msg->auth->mech->gm_name, | 385 | mech->gm_name, |
385 | gss_msg->uid); | 386 | gss_msg->uid); |
386 | p += gss_msg->msg.len; | 387 | p += gss_msg->msg.len; |
387 | if (clnt->cl_principal) { | 388 | if (clnt->cl_principal) { |
@@ -398,6 +399,11 @@ static void gss_encode_v1_msg(struct gss_upcall_msg *gss_msg, | |||
398 | p += len; | 399 | p += len; |
399 | gss_msg->msg.len += len; | 400 | gss_msg->msg.len += len; |
400 | } | 401 | } |
402 | if (mech->gm_upcall_enctypes) { | ||
403 | len = sprintf(p, mech->gm_upcall_enctypes); | ||
404 | p += len; | ||
405 | gss_msg->msg.len += len; | ||
406 | } | ||
401 | len = sprintf(p, "\n"); | 407 | len = sprintf(p, "\n"); |
402 | gss_msg->msg.len += len; | 408 | gss_msg->msg.len += len; |
403 | 409 | ||