Re: [PATCH 1/2] nfs4: fix discover_server_trunking use after free

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Jan 20, 2014, at 6:32 PM, Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> wrote:

> 
> On Jan 19, 2014, at 20:45, Weston Andros Adamson <dros@xxxxxxxxxxxxxxx> wrote:
> 
>> If clp is new (cl_count = 1) and it matches another client in
>> nfs4_discover_server_trunking, the nfs_put_client will free clp before
>> ->cl_preserve_clid is set.
>> 
>> Cc: stable@xxxxxxxxxxxxxxx # 3.7+
>> Signed-off-by: Weston Andros Adamson <dros@xxxxxxxxxxxxxxx>
>> ---
>> fs/nfs/nfs4client.c | 7 ++++---
>> 1 file changed, 4 insertions(+), 3 deletions(-)
>> 
>> diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
>> index c1b7a80..0f9b772 100644
>> --- a/fs/nfs/nfs4client.c
>> +++ b/fs/nfs/nfs4client.c
>> @@ -414,11 +414,12 @@ struct nfs_client *nfs4_init_client(struct nfs_client *clp,
>> 	error = nfs4_discover_server_trunking(clp, &old);
>> 	if (error < 0)
>> 		goto error;
>> -	nfs_put_client(clp);
>> -	if (clp != old) {
>> +
>> +	if (clp != old)
>> 		clp->cl_preserve_clid = true;
>> +	nfs_put_client(clp);
>> +	if (clp != old)
>> 		clp = old;
>> -	}
>> 
> 
> Applied, but I cleaned it up by replacing the last 2 lines with an equivalent ‘return old’…

Cool, I almost posted that, but thought this change was a “cleaner” diff.

-dros

> 
> --
> Trond Myklebust
> Linux NFS client maintainer
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux