Revert "net/sunrpc: Use static const char arrays"
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 6 Apr 2011 17:13:32 +0000 (10:13 -0700)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 6 Apr 2011 18:18:17 +0000 (11:18 -0700)
This reverts commit 411b5e05617593efebc06241dbc56f42150f2abe.

Olga Kornievskaia reports:

Problem: linux client mounting linux server using rc4-hmac-md5
enctype. gssd fails with create a context after receiving a reply from
the server.

Diagnose: putting printout statements in the server kernel and
kerberos libraries revealed that client and server derived different
integrity keys.

Server kernel code was at fault due the the commit

[aglo@skydive linux-pnfs]$ git show 411b5e05617593efebc06241dbc56f42150f2abe

Trond: The problem is that since it relies on virt_to_page(), you cannot
call sg_set_buf() for data in the const section.

Reported-by: Olga Kornievskaia <aglo@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@kernel.org [2.6.36+]
net/sunrpc/auth_gss/gss_krb5_mech.c

index 9022f0a6503e31dd6435da77fee3bda7694d4a53..0a9a2ec2e46983f0b73bf20d267721024c11646c 100644 (file)
@@ -427,7 +427,7 @@ static int
 context_derive_keys_rc4(struct krb5_ctx *ctx)
 {
        struct crypto_hash *hmac;
-       static const char sigkeyconstant[] = "signaturekey";
+       char sigkeyconstant[] = "signaturekey";
        int slen = strlen(sigkeyconstant) + 1;  /* include null terminator */
        struct hash_desc desc;
        struct scatterlist sg[1];