Received: by 2002:ac2:464d:0:0:0:0:0 with SMTP id s13csp3667503lfo; Mon, 23 May 2022 10:50:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw8D5RX16CkQHlOTh2oTmSfqQM0pSg0ZDl2H2Vtn2wxxt3mehUe+k7U5Blq1I+Zs3ba62TX X-Received: by 2002:a65:6c10:0:b0:380:437a:c154 with SMTP id y16-20020a656c10000000b00380437ac154mr20884458pgu.549.1653328221180; Mon, 23 May 2022 10:50:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653328221; cv=none; d=google.com; s=arc-20160816; b=UYYF2bUCMNK4ayxGKCSRiNpH/8wG4xPe4Tii1x2HbCsttx0Hqa62k7e9+5QYt/aj9u QqyAqdHHkR1ha17kgHZ0d/5nEH+60GOUjSYZEIeb4VVw53b31kpPApmHWTUff5+ea9Xj TKXG8ERDHUxRxkczpUIzs4ysnjkPcdzRSBmhtrzLM1kIKhcvKQoKyn9eMlSL2tXUNBHF eRbo1pNvDi2/u7ysmcds1SJwsOrAz2QzBc53XewqqhYzN+slAJTic4m1daA1EsQElj7O SBrsUP+hf+VwuAEIk+MwmxQJ4lf0pn2WbgNJCHqzaRYOjLm4+unH07iet1slP4yef9iS A7TQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=n6W5v/JbDLJpcgx1+CUfBt3UA9IEGH2bO2RrvJkB+z8=; b=ggBPVMqzBNVzPOaDFcmnaVJJcgmgc+t6/+6gvqyw5hSeFQgEQNZf7dr4uTmHWDVIRI g1/Oiz979BE7pPnMFlvHHN+R7z1RoMA2ZXKm53OPViJsiIWWUP3wLam+43G7xuqeB68g z0sHKAOY47j4CSXJuC9bJx4eDsEcTfMW3Cb3wetZYRUE+IYf91NFbqV5OGMcpCd3efGF 8m8eJd0SgGnU87X7S+JNyRC/Bf8yZ5Rf3X8QaD/ZZ+OG14sHLecNsUSOiD3A2MKAfba/ iMQhCkELnsJEvA18OgFZICbfLy98zslApHxihtKJA9KqIFtobyatRy8eu9xeMfCUhtVb 2vyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=aQXwzbkK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id oa9-20020a17090b1bc900b001d2c6c93948si16529897pjb.80.2022.05.23.10.50.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 May 2022 10:50:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=aQXwzbkK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 5D57F1059D5; Mon, 23 May 2022 10:50:10 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243998AbiEWRr2 (ORCPT + 99 others); Mon, 23 May 2022 13:47:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38846 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243006AbiEWR2R (ORCPT ); Mon, 23 May 2022 13:28:17 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8BC9D84A28; Mon, 23 May 2022 10:25:04 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B5EB760BD3; Mon, 23 May 2022 17:24:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BD3E5C385AA; Mon, 23 May 2022 17:24:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1653326660; bh=potqC08jkvZW9/U+vgAilEzYyFF0q7v+dSF+fh3Bx2M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aQXwzbkKtFXSC0bShmsy5kBQXs66T/hRnPrkhARtFEVNvXM3UlJ+9y0JFMi81iiMu LCGt1AIP9TxztW4BEPqoqiBIpsfZcEoAMOyyfglVkCe6PN/N4Yn6NfCT5b53YtmcxK 24nb11NDZM08xVkZgJFSASJvz/IAuObyBYpMU4hk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Hugo Villeneuve , Alexandre Belloni , Sasha Levin Subject: [PATCH 5.17 020/158] rtc: pcf2127: fix bug when reading alarm registers Date: Mon, 23 May 2022 19:02:57 +0200 Message-Id: <20220523165833.977632246@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220523165830.581652127@linuxfoundation.org> References: <20220523165830.581652127@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable 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 From: Hugo Villeneuve [ Upstream commit 73ce05302007eece23a6acb7dc124c92a2209087 ] The first bug is that reading the 5 alarm registers results in a read operation of 20 bytes. The reason is because the destination buffer is defined as an array of "unsigned int", and we use the sizeof() operator on this array to define the bulk read count. The second bug is that the read value is invalid, because we are indexing the destination buffer as integers (4 bytes), instead of indexing it as u8. Changing the destination buffer type to u8 fixes both problems. Signed-off-by: Hugo Villeneuve Signed-off-by: Alexandre Belloni Link: https://lore.kernel.org/r/20220208162908.3182581-1-hugo@hugovil.com Signed-off-by: Sasha Levin --- drivers/rtc/rtc-pcf2127.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-pcf2127.c b/drivers/rtc/rtc-pcf2127.c index 81a5b1f2e68c..6c9d8de41e7b 100644 --- a/drivers/rtc/rtc-pcf2127.c +++ b/drivers/rtc/rtc-pcf2127.c @@ -374,7 +374,8 @@ static int pcf2127_watchdog_init(struct device *dev, struct pcf2127 *pcf2127) static int pcf2127_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) { struct pcf2127 *pcf2127 = dev_get_drvdata(dev); - unsigned int buf[5], ctrl2; + u8 buf[5]; + unsigned int ctrl2; int ret; ret = regmap_read(pcf2127->regmap, PCF2127_REG_CTRL2, &ctrl2); -- 2.35.1