From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Subject: [patch 2/2] libceph: potential NULL dereference in ceph_osdc_handle_map() Date: Thu, 15 Aug 2013 08:52:48 +0300 Message-ID: <20130815055248.GB23580@elgon.mountain> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "David S. Miller" , ceph-devel@vger.kernel.org, netdev@vger.kernel.org, kernel-janitors@vger.kernel.org To: Sage Weil Return-path: Received: from aserp1040.oracle.com ([141.146.126.69]:39151 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753138Ab3HOFxG (ORCPT ); Thu, 15 Aug 2013 01:53:06 -0400 Content-Disposition: inline Sender: netdev-owner@vger.kernel.org List-ID: There are two places where we read "nr_maps" if both of them are set to zero then we would hit a NULL dereference here. Signed-off-by: Dan Carpenter --- I think this is a real bug, but please review my fix for it because I'm not very familiar with this code. diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index 559a832..56f1fe5 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c @@ -1786,6 +1786,8 @@ void ceph_osdc_handle_map(struct ceph_osd_client *osdc, struct ceph_msg *msg) nr_maps--; } + if (!osdc->osdmap) + goto bad; done: downgrade_write(&osdc->map_sem); ceph_monc_got_osdmap(&osdc->client->monc, osdc->osdmap->epoch);