From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Date: Thu, 15 Aug 2013 05:52:48 +0000 Subject: [patch 2/2] libceph: potential NULL dereference in ceph_osdc_handle_map() Message-Id: <20130815055248.GB23580@elgon.mountain> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Sage Weil Cc: "David S. Miller" , ceph-devel@vger.kernel.org, netdev@vger.kernel.org, kernel-janitors@vger.kernel.org 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);