Return-Path: Received: from mx1.redhat.com ([209.132.183.28]:41286 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760785AbbKTQ4N (ORCPT ); Fri, 20 Nov 2015 11:56:13 -0500 Date: Fri, 20 Nov 2015 11:56:11 -0500 (EST) From: Benjamin Coddington To: Trond Myklebust cc: Anna Schumaker , Linux NFS Mailing List Subject: Re: [PATCH] nfs4: start callback_ident at idr 1 In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-nfs-owner@vger.kernel.org List-ID: On Fri, 20 Nov 2015, Trond Myklebust wrote: > Hi Ben, > > On Fri, Nov 20, 2015 at 9:56 AM, Benjamin Coddington > wrote: > > > > If clp->cl_cb_ident is zero, then nfs_cb_idr_remove_locked() skips removing > > it when the nfs_client is freed. A decoding or server bug can then find > > and try to put that first nfs_client which would lead to a crash. > > Thanks for fixing! > Have you ever seen such a crash in the wild? IOW: is this something we > should consider for stable? Yes, there's a server that sometimes sends truncated cb_compounds, and this bug is hit if we continue decoding 0's past the end of received data since cb_ident ends up being 0. Both fixes I sent today are trying to handle that particular behavior. Ben