Received: by 2002:a25:86ce:0:0:0:0:0 with SMTP id y14csp425578ybm; Wed, 22 May 2019 05:42:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqyLI1oMWu/f1XAReGOYyPkDaxlBKSosDSWc8l7w9K/17Bx4wfeNGPhtYQ4y7Qw5Wzn6yJC4 X-Received: by 2002:a17:902:3343:: with SMTP id a61mr89755004plc.90.1558528930919; Wed, 22 May 2019 05:42:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558528930; cv=none; d=google.com; s=arc-20160816; b=0lXfNPo18V9vo32K7kxqJudg/rrnMScF4HQK0M0InsTo3Av/bEzpaQFoP6aNGZ7DkV mEfEnDaQZ9jsRvNYzwR8EDIZXIekocCflGKmUPxsqqWN6qXaq+tnU4Rg4tRmAA9+/O3C BozdhSAl+b2VOBiWPPZ1FFWSLQfy/C1rRwFkwB1tYHJY2TJgO4hYnR9NSSD8qIifk1rz gKhFnsPL4XWAB5U1/EuOQA5QNeLoFvQtXSEIj1LAtrELXXaS9504oGRPmoPTyaDGIVW8 7D5awce9OAHybaXFpyY8xedizIMc8s/7/KoqInPC6+G8+USqFe+MDd7jFV0EMNYkixkJ +0HA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:message-id:subject:cc:to:from:date:dkim-signature; bh=dc7HIox1GsMuz4SBq4z5Y4Rf5G0I0yZOZzYD3qgtYkk=; b=d0DvCn1E3cYq+Smfc/IUjt9QXQE2QJRTP6pSnNZYP74Vu/jQ716QfFyfjI0CjySyl5 fAtLXmHaWBrIDsBi5jyKWYujrMZFY+YQduQqNguviapXWbOX4FMCoQ53TnqRAelSgoQf qbx4CpXtgm6CgHGb2sQjYi2i/RDQJnaAisZbfBvQ+iG75yhYCnYNlt7o7JACS2hTUzj5 DAPRb6mdKqDyUJHajzMN9up3QmQll/JyryQQZgC79Sf+cctoJabUkq0NzySMFEuB7sKQ +02XtndcfalNXmDank6/hpjEnVQkhhBXNKIYCJE/UjFS4mm+OTpI+7eDOyX8PG0gA8FK AFwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=bJ0iQKw1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p11si5763526pgf.547.2019.05.22.05.41.56; Wed, 22 May 2019 05:42:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=bJ0iQKw1; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729324AbfEVMjg (ORCPT + 99 others); Wed, 22 May 2019 08:39:36 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:38681 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728438AbfEVMjg (ORCPT ); Wed, 22 May 2019 08:39:36 -0400 Received: by mail-pf1-f196.google.com with SMTP id b76so1271638pfb.5 for ; Wed, 22 May 2019 05:39:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mime-version:content-disposition :user-agent; bh=dc7HIox1GsMuz4SBq4z5Y4Rf5G0I0yZOZzYD3qgtYkk=; b=bJ0iQKw1WpVz5o+fAWQbVQTRvyqZj/6Mirn0lL9A+ptZB/CHbOT2FixTnj4fc/NfrK 0JAhbnGR9zUz4Fo1hnQ+GrtTo7OEfzVNY36Fwan0FSE6Kc3c535Ny13OG4ZKPC2RJhKW UhEpSp+NxC41s4Y9m+5Re0Ain+tENvUL6HfhP44K/gZiahcp94gVoH49moHpv14ffiQM KX+A99qSVDYJGv1m0/JaC9ztwdqkmN6cLO87sVlG4hTTlulR1f4k8ouVCMxMeyoT/AaL ZH4ckKIkO96lt0dRYoNO2AfOLRCy2qHasKE5gTdRrjIm/1QLfnFIaYLlZCA7jZAJ1O0r oyOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition:user-agent; bh=dc7HIox1GsMuz4SBq4z5Y4Rf5G0I0yZOZzYD3qgtYkk=; b=F1zDPHUdiJlrDvb/eB9RyZ/UdnmIftaQFdIZdLHnQK7FrFpaEMFIvr6atFuhbM96nd 4f8P1X4UEPNCGfvgNc0JBJbVw3nX9uJRN+Vo1WRuqsk5dNj705WBVn4gTzh8uvi0XHd/ M/PziBxfBOIt1IDQDN1UfvoEoroPtCYJEEvTu4bIu9buym7/cY9sWRZBgWAotUlX//U5 /HijrmRco1FKBJOA5cErMj0cEe7M//ZAKUQyXZCN74axkFUZ5g6czqbTl3YKFudFsGap v/1oWMUAs66lAxPYJO/WuzjRVwIT5WCwqca9pdrIyDrklDU8OnpB1hHHFgO2q/lBWin7 qmHQ== X-Gm-Message-State: APjAAAVPm6ZLbps3AjOtGLJOxewUqZZB0cdcACPyoJT34TWX3cra2FBX M/Jw+KKZSj+3flyGOrkxlHxhgRYsO/2TyA== X-Received: by 2002:a62:164f:: with SMTP id 76mr96965718pfw.172.1558528775567; Wed, 22 May 2019 05:39:35 -0700 (PDT) Received: from zhanggen-UX430UQ ([66.42.35.75]) by smtp.gmail.com with ESMTPSA id p16sm7830380pff.35.2019.05.22.05.39.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 May 2019 05:39:35 -0700 (PDT) Date: Wed, 22 May 2019 20:39:20 +0800 From: Gen Zhang To: sean@poorly.run Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: [PATCH] drm_edid-load: Fix a missing-check bug in drivers/gpu/drm/drm_edid_load.c Message-ID: <20190522123920.GB6772@zhanggen-UX430UQ> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In drm_load_edid_firmware(), fwstr is allocated by kstrdup(). And fwstr is dereferenced in the following codes. However, memory allocation functions such as kstrdup() may fail and returns NULL. Dereferencing this null pointer may cause the kernel go wrong. Thus we should check this kstrdup() operation. Further, if kstrdup() returns NULL, we should return ERR_PTR(-ENOMEM) to the caller site. Signed-off-by: Gen Zhang --- diff --git a/drivers/gpu/drm/drm_edid_load.c b/drivers/gpu/drm/drm_edid_load.c index a491509..a0e107a 100644 --- a/drivers/gpu/drm/drm_edid_load.c +++ b/drivers/gpu/drm/drm_edid_load.c @@ -290,6 +290,8 @@ struct edid *drm_load_edid_firmware(struct drm_connector *connector) * the last one found one as a fallback. */ fwstr = kstrdup(edid_firmware, GFP_KERNEL); + if (!fwstr) + return ERR_PTR(-ENOMEM); edidstr = fwstr; while ((edidname = strsep(&edidstr, ","))) { ---