diff options
| author | David S. Miller <davem@davemloft.net> | 2013-03-27 13:52:49 -0400 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2013-03-27 13:52:49 -0400 | 
| commit | e2a553dbf18a5177fdebe29495c32a8e7fd3a4db (patch) | |
| tree | 5ccb3d498325a7aaf93f49549eca03cb7861ca1c /fs/nfs/idmap.c | |
| parent | 7559d97993ae7d552c96313155286f372cf4cf7c (diff) | |
| parent | a8c45289f215e137825bf9630d0abb41c1dc41ff (diff) | |
| download | olio-linux-3.10-e2a553dbf18a5177fdebe29495c32a8e7fd3a4db.tar.xz olio-linux-3.10-e2a553dbf18a5177fdebe29495c32a8e7fd3a4db.zip  | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
	include/net/ipip.h
The changes made to ipip.h in 'net' were already included
in 'net-next' before that header was moved to another location.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'fs/nfs/idmap.c')
| -rw-r--r-- | fs/nfs/idmap.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/fs/nfs/idmap.c b/fs/nfs/idmap.c index dc0f98dfa71..c516da5873f 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;  |