On Mon, Apr 01, 2013 at 10:32:05PM +0000, Myklebust, Trond wrote: > On Mon, 2013-04-01 at 14:29 -0700, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > > The patch below does not apply to the 3.4-stable tree. > > If someone wants it applied there, or to any other stable or longterm > > tree, then please email the backport, including the original git commit > > id to <stable@xxxxxxxxxxxxxxx>. > > > > thanks, > > > > greg k-h > > > > ------------------ original commit in Linus's tree ------------------ > > > > >From cf4ab538f1516606d3ae730dce15d6f33d96b7e1 Mon Sep 17 00:00:00 2001 > > From: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> > > Date: Fri, 8 Mar 2013 12:56:37 -0500 > > Subject: [PATCH] NFSv4: Fix the string length returned by the idmapper > > > > Functions like nfs_map_uid_to_name() and nfs_map_gid_to_group() are > > expected to return a string without any terminating NUL character. > > Regression introduced by commit 57e62324e469e092ecc6c94a7a86fe4bd6ac5172 > > (NFS: Store the legacy idmapper result in the keyring). > > > > Reported-by: Dave Chiluk <dave.chiluk@xxxxxxxxxxxxx> > > Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> > > Cc: Bryan Schumaker <bjschuma@xxxxxxxxxx> > > Cc: stable@xxxxxxxxxxxxxxx [>=3.4] > > > > diff --git a/fs/nfs/idmap.c b/fs/nfs/idmap.c > > index dc0f98d..c516da5 100644 > > --- a/fs/nfs/idmap.c > > +++ b/fs/nfs/idmap.c > > @@ -726,9 +726,9 @@ out1: > > return ret; > > } > > > > -static int nfs_idmap_instantiate(struct key *key, struct key *authkey, char *data) > > +static int nfs_idmap_instantiate(struct key *key, struct key *authkey, char *data, size_t datalen) > > { > > - return key_instantiate_and_link(key, data, strlen(data) + 1, > > + return key_instantiate_and_link(key, data, datalen, > > id_resolver_cache->thread_keyring, > > authkey); > > } > > @@ -738,6 +738,7 @@ static int nfs_idmap_read_and_verify_message(struct idmap_msg *im, > > struct key *key, struct key *authkey) > > { > > char id_str[NFS_UINT_MAXLEN]; > > + size_t len; > > int ret = -ENOKEY; > > > > /* ret = -ENOKEY */ > > @@ -747,13 +748,15 @@ static int nfs_idmap_read_and_verify_message(struct idmap_msg *im, > > case IDMAP_CONV_NAMETOID: > > if (strcmp(upcall->im_name, im->im_name) != 0) > > break; > > - sprintf(id_str, "%d", im->im_id); > > - ret = nfs_idmap_instantiate(key, authkey, id_str); > > + /* Note: here we store the NUL terminator too */ > > + len = sprintf(id_str, "%d", im->im_id) + 1; > > + ret = nfs_idmap_instantiate(key, authkey, id_str, len); > > break; > > case IDMAP_CONV_IDTONAME: > > if (upcall->im_id != im->im_id) > > break; > > - ret = nfs_idmap_instantiate(key, authkey, im->im_name); > > + len = strlen(im->im_name); > > + ret = nfs_idmap_instantiate(key, authkey, im->im_name, len); > > break; > > default: > > ret = -EINVAL; > > > > Hi Greg, > > There is a dependency on commit 0cac12023 (NFSv4: Ensure that > idmap_pipe_downcall sanity-checks the downcall data) that I did not > notice. Should I resubmit the patch with an appropriate > > Cc: <stable@xxxxxxxxxxxxxxx> # 3.4.x: 0cac12023: NFSv4: Ensure that idmap_pipe_downcall > > in the signed-off area? That patch, 0cac12023, doesn't apply to 3.4-stable, can you send me a two patch series, with both of these properly backported to 3.4-stable so I can apply them? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html