Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2720125pxj; Sat, 19 Jun 2021 22:26:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyECF7CtyI7cWAd37YZg7nSRO4H+iOkyqwxSfnyo4C1qeTVObB/OnYe9yo6r3zEivrPqJZd X-Received: by 2002:a17:906:2306:: with SMTP id l6mr18049567eja.362.1624166806301; Sat, 19 Jun 2021 22:26:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624166806; cv=none; d=google.com; s=arc-20160816; b=cXBt/0UO0h2KvJNkL7jUTkIGkJF5dcLNifLf4GT+pHmQmdTR3mTDXkO7WuNtYUsKnL TLW1SB6l2tpXNq8yTR+jRAu3kRhXsgNYXSSPAVywp2mWbh8PpdfQZb3WcljbGcahRIQF pHzF1TAb9wGUsfMw0hvMatE3SUPs4hbKvoQgmlNtScV+SjkGEq9Oz2CUB7oxNVApLKec F8Pd/rMVCeyNA03MbBgsqzV5DLdgLBNXB0ZKHUDyQTbhuPfF4a7PBmh9YFqv8O7zhOZg up/7o1sEYx7wzvZKajEYmS4fEacy99GHFDcjJVlJ7P6TE1PF+zLIUhvTkml/Eu7Wdz2y RB9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=I5tClPPDZRnDkEOu/F+8xEX/YXqIHz2F79PE0gg5zh4=; b=youcrfpZKH8UzrMjiFu5Ur0qVW7gQib9WY79y1YwGaOi2xBaXw4HcFIg3iZ4SxBfud vyoNLpNF549wMAaL9o7ZgOtF+/ZSAyPQG4pKGOBlJtCzIYPuzDvsNprWGtDEvr2e74WZ ZqiO5xP2s1csePzNiN951V8xoknA06zw7esHPVP4sFmQiVrVN6oQGBvQtM42p4UCeXiE 0fZ4WRusZ2pdiHEkI/ZjEl3wCFVuUOVsR5lWVLNSuws27NCb9rq4OP9cmj7k93sIaBsU Fum7wbCIuTTgTcwOsKHa3v8XkTtue1q1nHJnvUTownSUG+d+bLbfW4wzZJq5ItYXZvCL R6Xw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MtMLWSBf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id t23si2751896ejs.446.2021.06.19.22.25.57; Sat, 19 Jun 2021 22:26:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MtMLWSBf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S229524AbhFTFM5 (ORCPT + 99 others); Sun, 20 Jun 2021 01:12:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229471AbhFTFMz (ORCPT ); Sun, 20 Jun 2021 01:12:55 -0400 Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com [IPv6:2607:f8b0:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 78948C061574; Sat, 19 Jun 2021 22:10:42 -0700 (PDT) Received: by mail-pf1-x42e.google.com with SMTP id g192so3373317pfb.6; Sat, 19 Jun 2021 22:10:42 -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:references:mime-version :content-disposition:in-reply-to; bh=I5tClPPDZRnDkEOu/F+8xEX/YXqIHz2F79PE0gg5zh4=; b=MtMLWSBffpmYWXdy1aFfNrt54rZ1BPl6+nOjYCRvRdyVzXi7hEm1LxR2wyVBnJghak duQfGBwPlYEYBal54TZmw2JiLYQRX/trqQno1GqaZ8Eyp3ZIqU7kpO13PjK9NzNxEsO+ TD+004uWdb8TpG9qwsQ8NJqIlcC7nEVnw67IdbNYJWh/fhzEhTZaXRSNn4AI7shdESaq jxTYT28YnY8KpYxNNjax+5TVxFgKMnQwICZCUdCyYa/up+6eL5dlFHMG/SP9xuIwAYbz ReXea+wfiycTjBrtcCapB6kNvv4cPT6iX3EELFfN7XMum8y7h49CGMcUWj2y1mjf09Wd 8lAw== 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:references :mime-version:content-disposition:in-reply-to; bh=I5tClPPDZRnDkEOu/F+8xEX/YXqIHz2F79PE0gg5zh4=; b=HBPdZtGGe9u5JvtWLYtTuKhrdVBbV60eyXtWD5/W44wmztMnr4X04liCmmDYT8MRE6 W7NqC3M+5c+ykyHxVJFO4wj4KnPo0JRjkLkrudGmPI+bVB5pg91mZYNjySzlzCf9UMbw n/KDdcpaqCWFK6NSMvWMhxNrzu1eNvOmhnY28isRE8NrmkDLZMZjwODr7fYITH6Cycnw RwCYBDrQZFcbxc6kNLR7lrNwrv6kn9ZYIMxTO/FVHF/HHwPJOay5AJccPyeUWNkOEMBF WcVgKTfoUkiX5+yHMi534NH6XgqKipYV6DcvaaZVkf9JRxgS0uwy4h2gZOygDGOVPjBX IzUg== X-Gm-Message-State: AOAM532Q2HRAnS1a6X0cvOJgvtU8sgFLxpTg0rUW2UrpBweE+j0hGK1C s8bb5o1Qns5vVe0qfoPSdm0= X-Received: by 2002:a62:3344:0:b029:24c:735c:4546 with SMTP id z65-20020a6233440000b029024c735c4546mr13409159pfz.1.1624165840850; Sat, 19 Jun 2021 22:10:40 -0700 (PDT) Received: from google.com ([2620:15c:202:201:b83e:d8b6:9f4f:2be2]) by smtp.gmail.com with ESMTPSA id g29sm12641222pgm.11.2021.06.19.22.10.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Jun 2021 22:10:39 -0700 (PDT) Date: Sat, 19 Jun 2021 22:10:37 -0700 From: Dmitry Torokhov To: Yizhuo Zhai , Anthony Kim Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] Input: hideep - fix the uninitialized use in hideep_nvm_unlock() Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 16, 2021 at 03:48:51PM -0700, Yizhuo Zhai wrote: > Inside function hideep_nvm_unlock(), variable "unmask_code" could > be uninitialized if hideep_pgm_r_reg() returns error, however, it > is used in the later if statement after an "and" operation, which > is potentially unsafe. I think this is pretty sensible, but let's see if the original author has some comments... > > Signed-off-by: Yizhuo > --- > drivers/input/touchscreen/hideep.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/input/touchscreen/hideep.c > b/drivers/input/touchscreen/hideep.c > index ddad4a82a5e5..f860a815b603 100644 > --- a/drivers/input/touchscreen/hideep.c > +++ b/drivers/input/touchscreen/hideep.c > @@ -364,9 +364,13 @@ static int hideep_enter_pgm(struct hideep_ts *ts) > static void hideep_nvm_unlock(struct hideep_ts *ts) > { > u32 unmask_code; > + int ret; > > hideep_pgm_w_reg(ts, HIDEEP_FLASH_CFG, HIDEEP_NVM_SFR_RPAGE); > - hideep_pgm_r_reg(ts, 0x0000000C, &unmask_code); > + ret = hideep_pgm_r_reg(ts, 0x0000000C, &unmask_code); > + if (ret) > + return ret; > + > hideep_pgm_w_reg(ts, HIDEEP_FLASH_CFG, HIDEEP_NVM_DEFAULT_PAGE); > > /* make it unprotected code */ > @@ -462,7 +466,9 @@ static int hideep_program_nvm(struct hideep_ts *ts, > u32 addr = 0; > int error; > > - hideep_nvm_unlock(ts); > + error = hideep_nvm_unlock(ts); > + if (error) > + return error; > > while (ucode_len > 0) { > xfer_len = min_t(size_t, ucode_len, HIDEEP_NVM_PAGE_SIZE); > -- > 2.17.1 -- Dmitry