Received: by 10.223.176.5 with SMTP id f5csp493522wra; Tue, 6 Feb 2018 02:29:40 -0800 (PST) X-Google-Smtp-Source: AH8x224OmlEeD85ajKLcoFza8BgRAEEs+X3KBpAHYFqtzLoSAibKw2PfQRHvb7topmJSVYTrS/he X-Received: by 10.98.63.15 with SMTP id m15mr1902642pfa.221.1517912979846; Tue, 06 Feb 2018 02:29:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517912979; cv=none; d=google.com; s=arc-20160816; b=jSJaGjBPfBsGvnD+OF0yQaWlfJwJDexOyHJ3Desnio36JjlTrMiMFjlQvtaPvwjl3t JiDfisfl2jyB81eHI/PHa/3MYek2aJZ6vkJu0B16NkPFj9Kr8JGfig69jYQanQCoPpwl tX4F0FE9o2sjdkkVk+goAr2kehNwURe6iBtbhmMzifH1hcucBgBKPqguIXVtcUR4ICHS yVSJ2qwNVT5sShbEsPfixkvRNGRtgcP2ae4fE0vzUR3dP6MI6g7j3BLoqv7vRiWClV0Z YmiAEA1UWZavfjWWCfKtCGoogiDrQBLGLeEb8ZtDXVrdhpr6A5z9UDGWN7PRCD91diRI fSuA== 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 :arc-authentication-results; bh=pZnH1ITiOaGXqkvUJPMVmVHLEaGHUCSeWZGSwJKqlOM=; b=OQ4PhkH7pRjVOB0j+rUJ6IbtZmmL2R2/du6qGMGOy/ZpC45UOF6i4jQr4DqUg3Zy8K GluWsl/VYazJYv4rAO1CpSRjl8yICGXfZ6E/9PC3wxmaSxbDLfvGj2035TeY+3oA5Z5K zovz+aFDkWe1a6Oc8DFRjksxbfm2J75fIhNrR3xdjf5dhpSaPvBUimSBtXBiPLTLQmzY MbrOmgSSVrOfB8oEEwXtjMmgJt+3AtPc+apam8E4BX7akTXfyXrP9z3aUtfV3g3u2MSm gYdRafbx3LUc7uXF6KWzeAmb97kdfYGo9hEZ+pmf7pZZU1tHNqo7BP2NJU9hKcN+5NDH cg8g== ARC-Authentication-Results: i=1; mx.google.com; dkim=temperror (no key for signature) header.i=@szeredi.hu header.s=google header.b=fPqYpvnN; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i5-v6si6508734plr.335.2018.02.06.02.29.25; Tue, 06 Feb 2018 02:29:39 -0800 (PST) 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=temperror (no key for signature) header.i=@szeredi.hu header.s=google header.b=fPqYpvnN; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752750AbeBFK1l (ORCPT + 99 others); Tue, 6 Feb 2018 05:27:41 -0500 Received: from mail-wr0-f180.google.com ([209.85.128.180]:36297 "EHLO mail-wr0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752661AbeBFK1b (ORCPT ); Tue, 6 Feb 2018 05:27:31 -0500 Received: by mail-wr0-f180.google.com with SMTP id y3so1314215wrh.3 for ; Tue, 06 Feb 2018 02:27:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=szeredi.hu; s=google; h=date:from:to:cc:subject:message-id:mime-version:content-disposition :user-agent; bh=pZnH1ITiOaGXqkvUJPMVmVHLEaGHUCSeWZGSwJKqlOM=; b=fPqYpvnNlOSV1f5xd47teY7U6Iu/xyojtcs8dZZk0EjRtaeoZ69IbH0s5Z3ylGSo7W dhnMWUmL2Uk6SYoEL/m7vLqLBI0VdocwQnoxWXa8JLTFGVlxR1wXam1SH4mEkPNEhuPE l4UI4UjP0N57GJvON31AGXdzj6OMRD8msDvDs= 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=pZnH1ITiOaGXqkvUJPMVmVHLEaGHUCSeWZGSwJKqlOM=; b=OcYgsue72eJWQw8oSEPv62RA9iNnjx2XfdHzLW+VRsLhcZLvwDTOOxap09KOYtYrsV yX8UIeHxNOOLGmc0a5t8SGrdwt/iC+x9RHJi/YKyY3wtzzR7jBarDXhaWi4mq6NDx/JD AhBs1xs+HLsE39Fix/gOC2Do1+FFhxINDf3x423E6WjnLEHWiWqsTQsjZKiSFHvcBlwQ 5xgELSbwOtFlsTBNl4V5/ooIw58ABJVzeP9aY4PLjnT4Ms0S4hNmjrvHCO0ixGTiqHTx K6Lt69ug1SvpybcJi6No2gkSFOW3+JZRrkH2+ucRvdCBNklQDEzLZhgcOR7UX60vkyPc hfEA== X-Gm-Message-State: APf1xPBNWUGriPAgE9qnQOFWk9j/zX7gJyR7x3pbStn8lxRQM9CKXaC0 1vggizNlkAYt3bDwB6Pfn8nP6Q== X-Received: by 10.223.199.194 with SMTP id y2mr1563785wrg.170.1517912850745; Tue, 06 Feb 2018 02:27:30 -0800 (PST) Received: from veci.piliscsaba.redhat.com (C2B0E321.catv.pool.telekom.hu. [194.176.227.33]) by smtp.gmail.com with ESMTPSA id q1sm6098279wrf.40.2018.02.06.02.27.29 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 06 Feb 2018 02:27:29 -0800 (PST) Date: Tue, 6 Feb 2018 11:27:27 +0100 From: Miklos Szeredi To: Al Viro Cc: Rich Felker , Szabolcs Nagy , Tomasz Majchrzak , linux-fsdevel , linux-kernel Subject: [PATCH] seq_file: fix incomplete reset on read from zero offset Message-ID: <20180206102727.GB19579@veci.piliscsaba.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When resetting iterator on a zero offset we need to discard any data already in the buffer (count), and private state of the iterator (version). For example this bug results in first line being repeated in /proc/mounts if doing a zero size read before a non-zero size read. Reported-by: Rich Felker Signed-off-by: Miklos Szeredi Fixes: e522751d605d ("seq_file: reset iterator to first record for zero offset") Cc: # v4.10 --- fs/seq_file.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) --- a/fs/seq_file.c +++ b/fs/seq_file.c @@ -181,8 +181,11 @@ ssize_t seq_read(struct file *file, char * if request is to read from zero offset, reset iterator to first * record as it might have been already advanced by previous requests */ - if (*ppos == 0) + if (*ppos == 0) { m->index = 0; + m->version = 0; + m->count = 0; + } /* Don't assume *ppos is where we left it */ if (unlikely(*ppos != m->read_pos)) {