Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp927700pxb; Thu, 21 Apr 2022 13:45:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwCCnjorc+0ONfSH6IzIyX/TcTuC8KHXXorGQKO9fWAHW6aFdM0ymRtdl0SEUqlT8jiIflA X-Received: by 2002:a63:fd04:0:b0:3aa:6473:1859 with SMTP id d4-20020a63fd04000000b003aa64731859mr1027843pgh.151.1650573919913; Thu, 21 Apr 2022 13:45:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650573919; cv=none; d=google.com; s=arc-20160816; b=Y7lmAjLApsJW7kvjSDA8QhRtuqn3EypOjLGkiZ+rtm5tQfkekHCHEoSzup93++elTN syzSyRpR3KXovbWvX+QSyevQjKSROpzNyfJ4H38bF7dXRlYexA/7o6/cJMOUPeKdNIKS /h2lM391Yy+QRcdV8owUO1AllHVluEW5AohyvPOdjbwaHxgxrMspr4UqL3n7d1VsyEHp y3SmueE+N/I9r8Xie9x606bZdVnJG3zx+zGgu1BIgL8uUI4T5K/FlZu2NzSk1CHW7VO4 oYxFVh1qJYQx7Rz5bGs/Z/cNuHKaPWTLCoRdXIu2obXzZUoRMsiCvx8HoPbx325jL9hF e8ZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=r4E23OnZATIS+lk5aixNnqKMCFgUPEq6mE0xznooD8Q=; b=wSgFZkxcpNslNTHSTbjmTtTNYNr9n47CiuD8y0l2LDf74b8NW+m5JMERF8B9kkp0oK AfQ/7DkYUjtNWAq6NoVMlf9ZXzwlhFvBdCsG4Jhh2Nfec0m3NjhuDhgP88C7PiDdywMb SZfV+Agnm0HXXyQ1Ds8riKwYklmi4CAgQyTkrbk1VW0JCyOH1hxJ7AwU/auTVyEGXMOw /RJO9HsOTcQQ1i6lnKOv+y/porgHZMH9fwmjImYKLdqByEkj8B+kswK3Exf2FyaV5y19 p2qwovNKECm559/sNMUSO2opzbr/VFBZydmP9Uwkbq4498QsZBWxNNU06LGeRNBnoQA4 WP/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b="Ae/sJwau"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b2-20020a056a000cc200b0050a51a001cbsi5949770pfv.258.2022.04.21.13.44.59; Thu, 21 Apr 2022 13:45:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b="Ae/sJwau"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347273AbiDRSCd (ORCPT + 99 others); Mon, 18 Apr 2022 14:02:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48050 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347272AbiDRSCX (ORCPT ); Mon, 18 Apr 2022 14:02:23 -0400 Received: from mail-pl1-x649.google.com (mail-pl1-x649.google.com [IPv6:2607:f8b0:4864:20::649]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C0C6A35249 for ; Mon, 18 Apr 2022 10:59:40 -0700 (PDT) Received: by mail-pl1-x649.google.com with SMTP id k2-20020a170902ba8200b0015613b12004so8176213pls.22 for ; Mon, 18 Apr 2022 10:59:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=r4E23OnZATIS+lk5aixNnqKMCFgUPEq6mE0xznooD8Q=; b=Ae/sJwaupacpHLx5MtlaO/72tMhwQW3butupk70g0bqlEqW46BfYP642c+RYEnoVpL BFdiDTFPTRU5I8o5yvvsKMP5tAzg1uwOJFxadYTreohSBRGoIgKKai0w0OXYRwvU5jI/ 2wur/pyVHg3DwNdOnroCxTijDf3yZOGa/OcXkA6CHfGgfhyI9vuhiROqRmMMHiJLxW1y Mq657bhjwfQPnqdb9V0Ep5N8AdQk3f+8ikWwI7aeIANWIY8VpWXTCYxziw8B+nYt9HPu lTCYDV1pwDXZb0C+J6vZ7aRMv8JvQma6fBbls9tF0SXKiAnmrYLo5pAd+wSMoWB0GQmm K7/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=r4E23OnZATIS+lk5aixNnqKMCFgUPEq6mE0xznooD8Q=; b=k1rllOR6q035k9b82iRGzk05b2wMCD0fV1fPA5L+2apFtEQW/RJBP2DUT5adzq7odh 9/f/qjl780+PUVPGZ/NvraJ8INhsVTPef9OAObHyok4jxYQc9iyXQjduwbfGodsaGqHM xtw5wvXmlghezySYhT3ypME/8xZRWeO3sz4hYAcHs9D7nMVisnd4cL1iTR5nLRYfpxe/ u75O54E75bcqAD1O7ntSO4LUDK8/aJmdod8xOGCiisiryVuFBggySq8IWn8zgMCgG0jE V0Og0uLtpOdl7eZazNNeuGpmTcuaRS0GVSbRIFF6zcWb1RqfBMF5Jv2SuzSsPRjq00pn RPCA== X-Gm-Message-State: AOAM530lMR1isRHWDQleEtVOGpIVQg2w1uAOiOPkZnBUKVwUnM2y1Hok ClY9EdkSnWTnTw1N1Hda+kf5+bTTq9yN0A== X-Received: from wonchungspecialist.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:1440]) (user=wonchung job=sendgmr) by 2002:a05:6a00:15c4:b0:50a:7fec:c656 with SMTP id o4-20020a056a0015c400b0050a7fecc656mr3854566pfu.62.1650304780282; Mon, 18 Apr 2022 10:59:40 -0700 (PDT) Date: Mon, 18 Apr 2022 17:59:31 +0000 In-Reply-To: <20220418175932.1809770-1-wonchung@google.com> Message-Id: <20220418175932.1809770-2-wonchung@google.com> Mime-Version: 1.0 References: <20220418175932.1809770-1-wonchung@google.com> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog Subject: [PATCH 1/2] misc/mei: Add NULL check to component match callback functions From: Won Chung To: Heikki Krogerus , Alexander Usyskin , Mika Westerberg , Benson Leung , Prashant Malani , Daniele Ceraolo Spurio , linux-kernel@vger.kernel.org Cc: Won Chung Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently, component_match callback functions used in mei refers to the driver name, assuming that the component device being matched has a driver bound. It can cause a NULL pointer dereference when a device without a driver bound registers a component. This is due to the nature of the component framework where all registered components are matched in any component_match callback functions. So even if a component is registered by a totally irrelevant device, that component is also shared to these callbacks for i915 driver. To prevent totally irrelevant device being matched for i915 and causing a NULL pointer dereference for checking driver name, add a NULL check on dev->driver to check if there is a driver bound before checking the driver name. In the future, the string compare on the driver name, "i915" may need to be refactored too. Reviewed-by: Heikki Krogerus Reviewed-by: Prashant Malani Signed-off-by: Won Chung --- drivers/misc/mei/hdcp/mei_hdcp.c | 2 +- drivers/misc/mei/pxp/mei_pxp.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c index ec2a4fce8581..e889a8bd7ac8 100644 --- a/drivers/misc/mei/hdcp/mei_hdcp.c +++ b/drivers/misc/mei/hdcp/mei_hdcp.c @@ -784,7 +784,7 @@ static int mei_hdcp_component_match(struct device *dev, int subcomponent, { struct device *base = data; - if (strcmp(dev->driver->name, "i915") || + if (!dev->driver || strcmp(dev->driver->name, "i915") || subcomponent != I915_COMPONENT_HDCP) return 0; diff --git a/drivers/misc/mei/pxp/mei_pxp.c b/drivers/misc/mei/pxp/mei_pxp.c index f7380d387bab..5c39457e3f53 100644 --- a/drivers/misc/mei/pxp/mei_pxp.c +++ b/drivers/misc/mei/pxp/mei_pxp.c @@ -131,7 +131,7 @@ static int mei_pxp_component_match(struct device *dev, int subcomponent, { struct device *base = data; - if (strcmp(dev->driver->name, "i915") || + if (!dev->driver || strcmp(dev->driver->name, "i915") || subcomponent != I915_COMPONENT_PXP) return 0; -- 2.36.0.rc0.470.gd361397f0d-goog