Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3377698pxb; Mon, 17 Jan 2022 19:02:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJzQAToyG/l2Yu4MwefU9U9DsonFsxAKPouMs9NHHYC9D4ILcMPeHBNZKy/pyZ6eKBsnUg36 X-Received: by 2002:a17:902:be14:b0:149:537f:378 with SMTP id r20-20020a170902be1400b00149537f0378mr25351198pls.97.1642474977950; Mon, 17 Jan 2022 19:02:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642474977; cv=none; d=google.com; s=arc-20160816; b=cBEiPGcYxe/i9y7D2oJjSbRAyuNIbJ7sacl5QYjdPnkbOAbWjii3zPjn5srI2jqPsC x+9z127aH36ioB97y8/lmjD1vkc8MhDD04ZS/r+H+jtysCzENo9pz06TfcEBT8iU/L0r QNOzrnDIvPFHl1jacjVSZEKCtKCY3mXMhXY8/utE9n3c7yAQGqPqENKKukxKmNpGpwYk 3RBbBlViZiIDGP9gFC4ZfbvyO+yQWvhx8tRSd22BkWdpJ7NCoUY3YRN52nbKBaNU9LZD njaXyGBq/E3a/ScP6Bul48InoCwU2WbbrnKICJtDLuEbL6NTsZ3RwLKy7av3M5FXGpc9 HX6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=E/L36AdK5Ipen2tmpRXUP0pX59XDvEK9cBawMrh2MjE=; b=qTZlHWGvzdJz5l2ZQmLEkgsb1hz1g/Tsj2RTirYfYKfGgfOhI3GhxNEaqLLyXeAESe I2+Zh1MCICNbSKN9OAJfNLMuZYDGiPsmioIvN1vSNiV/cUBSW/taiejwzXnSCsHJXqkM qd3nvXLiJIU8Y770ZMjGx6t20f2ZotbuJl/uhbFeEXOu+qYxr7HRnvgYOjTu9npLW3a9 +/rHyeBZ4BWlYzNvIlGXm22JAwYT26UvcjhtMG+tKKFtfDD74QZkqD/ONGhjVm4eQXHK lFeXNXHdyL0HI17SIt/DZ7X3ZSjiSWIiVyt8y+lrvpHKfknYMSBTp2/d23LTzuPB28+z KRng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=DligtBPw; 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 k186si9780305pgd.633.2022.01.17.19.02.44; Mon, 17 Jan 2022 19:02:57 -0800 (PST) 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=20210112 header.b=DligtBPw; 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 S243213AbiAQVBi (ORCPT + 99 others); Mon, 17 Jan 2022 16:01:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43202 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235646AbiAQVBg (ORCPT ); Mon, 17 Jan 2022 16:01:36 -0500 Received: from mail-yb1-xb36.google.com (mail-yb1-xb36.google.com [IPv6:2607:f8b0:4864:20::b36]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D6775C061574; Mon, 17 Jan 2022 13:01:35 -0800 (PST) Received: by mail-yb1-xb36.google.com with SMTP id m196so21138487ybf.4; Mon, 17 Jan 2022 13:01:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=E/L36AdK5Ipen2tmpRXUP0pX59XDvEK9cBawMrh2MjE=; b=DligtBPwqn6VtiU+rpAn5X+wN11F98GkoqMRJbBi53/INouP3OZYi4BtPYLmhfHf7W YAbGiO6l/guh3I1zu20VxIFUqvd2xlQ4X2C7GWESOPxMC1Rtmvysn0lBEoc0krZG2eDh +EHyAxlxaB91ofBqytmoOm6j3O3EhP+ujjSCroUGMLct0ASx49rMLrK95JesRNrkO97j L/5hAuK3K08Y80yWzXfXX9DtZqRenb2y2Gnm40NOQvZUaal9aV8Q+puBweI0GDpnJ31Z mPVhhzwNuk8lvKAdau1XGZj3HSTJpTLmM3eurQKuW6CJNz//eHH4uJEJaB28/wgmpS8m uyxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=E/L36AdK5Ipen2tmpRXUP0pX59XDvEK9cBawMrh2MjE=; b=FvdIVExb3eHWlsvtpTVHkYIw+ps3EvojSl+O2i31Hj7uhJnvg4JPF14Ib0C3BxnV01 ErcgPYh8kDvAeMEV7Kx4QZEum8MtMTth2tjQqtXPrSE5S+yNCXUksAHcdZ29WvBpbiw5 2m9BSSwMDPWoN58g6xY/efcGzMXC2tc2nUVEkCnLa+b3RCho95zgqwi2xPq0BZM0GRuh 6JcOs3DIBmCQhVmsroMf9qOgtj+N/DiMqWnVI4gKbgTA7ej3LgtFRfiLyxOJO6LDN1aF /NJES2X2ZaykDxM6vBPhzBDDb6QERjUixRd3KARqSS9W2XG1Umkc+UJVzFhfYlZhwTRM 06kg== X-Gm-Message-State: AOAM533TElS5eNJTUFJVpADAq0NfL0HPJDHjC0Vcngt/KX4hEJjQTecl dTccfLYfkEt+SjVBe4SJPKGU6Rrxe/xY7m2uN1kSmcRf X-Received: by 2002:a25:b184:: with SMTP id h4mr13155000ybj.738.1642453295121; Mon, 17 Jan 2022 13:01:35 -0800 (PST) MIME-Version: 1.0 References: <20220114064625.765511-1-deng.changcheng@zte.com.cn> In-Reply-To: <20220114064625.765511-1-deng.changcheng@zte.com.cn> From: ronnie sahlberg Date: Tue, 18 Jan 2022 07:01:23 +1000 Message-ID: Subject: Re: [PATCH] cifs: Replace one-element array with flexible-array member To: cgel.zte@gmail.com Cc: Steve French , linux-cifs , "samba-technical@lists.samba.org" , LKML , Changcheng Deng , Zeal Robot Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch is wrong. qi_iov is not even the trailing element of the array so we cant change it to be a flexible array member. This change will likely clobber io_iov so the potential for breaking, memory leaks or ooops is quite possible. qi_iov is supposed to be exactly one element in size. Same for close_iov, while it is the last element in the structure, it is not a flexible array but an array of exactly one member. This change to close_iov would likely lead to reading/writing beyond the end of the structure. NACK On Sat, Jan 15, 2022 at 12:44 AM wrote: > > From: Changcheng Deng > > There is a regular need in the kernel to provide a way to declare having > a dynamically sized set of trailing elements in a structure. Kernel code > should always use "flexible array members" for these cases. The older > style of one-element or zero-length arrays should no longer be used. > Reference: > https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays > > Reported-by: Zeal Robot > Signed-off-by: Changcheng Deng > --- > fs/cifs/smb2ops.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c > index af5d0830bc8a..5c104b2f308a 100644 > --- a/fs/cifs/smb2ops.c > +++ b/fs/cifs/smb2ops.c > @@ -1609,10 +1609,10 @@ struct iqi_vars { > struct smb_rqst rqst[3]; > struct kvec rsp_iov[3]; > struct kvec open_iov[SMB2_CREATE_IOV_SIZE]; > - struct kvec qi_iov[1]; > + struct kvec qi_iov[]; > struct kvec io_iov[SMB2_IOCTL_IOV_SIZE]; > struct kvec si_iov[SMB2_SET_INFO_IOV_SIZE]; > - struct kvec close_iov[1]; > + struct kvec close_iov[]; > }; > > static int > -- > 2.25.1 >