From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757980AbcB1PaX (ORCPT ); Sun, 28 Feb 2016 10:30:23 -0500 Received: from slow1-d.mail.gandi.net ([217.70.178.86]:40901 "EHLO slow1-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757544AbcB1PaW (ORCPT ); Sun, 28 Feb 2016 10:30:22 -0500 X-Originating-IP: 88.159.34.112 From: Maarten ter Huurne To: Dan Williams , Jiri Kosina Cc: linux-kernel@vger.kernel.org, Maarten ter Huurne Subject: [PATCH] dma-debug: Avoid NULL dereference when checking sync Date: Sun, 28 Feb 2016 16:20:59 +0100 Message-Id: <1456672859-15521-1-git-send-email-maarten@treewalker.org> X-Mailer: git-send-email 2.6.2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org check_sync() calls bucket_find_contain(), which in turn calls dma_get_max_seg_size(), which dereferences the device pointer. Signed-off-by: Maarten ter Huurne --- lib/dma-debug.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/dma-debug.c b/lib/dma-debug.c index 4a1515f..4960402 100644 --- a/lib/dma-debug.c +++ b/lib/dma-debug.c @@ -1194,6 +1194,13 @@ static void check_sync(struct device *dev, struct hash_bucket *bucket; unsigned long flags; + if (!ref->dev) { + err_printk(dev, NULL, "DMA-API: device driver passes NULL " + "for device to DMA sync function; " + "cannot check usage\n"); + return; + } + bucket = get_hash_bucket(ref, &flags); entry = bucket_find_contain(&bucket, ref, &flags); -- 2.6.2