lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Sun, 17 May 2020 23:39:39 +0200
From:   Richard Weinberger <richard.weinberger@...il.com>
To:     Richard Weinberger <richard@....at>
Cc:     linux-mtd@...ts.infradead.org, ben.shelton@...com,
        LKML <linux-kernel@...r.kernel.org>, zach.brown@...com
Subject: Re: [PATCH] ubi: Fix seq_file usage in detailed_erase_block_info
 debugfs file

On Sat, May 2, 2020 at 2:48 PM Richard Weinberger <richard@....at> wrote:
>
> 3bfa7e141b0b ("fs/seq_file.c: seq_read(): add info message about buggy .next functions")
> showed that we don't use seq_file correctly.
> So make sure that our ->next function always updates the position.
>
> Fixes: 7bccd12d27b7 ("ubi: Add debugfs file for tracking PEB state")
> Signed-off-by: Richard Weinberger <richard@....at>
> ---
>  drivers/mtd/ubi/debug.c | 12 ++----------
>  1 file changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/mtd/ubi/debug.c b/drivers/mtd/ubi/debug.c
> index 54646c2c2744..ac2bdba8bb1a 100644
> --- a/drivers/mtd/ubi/debug.c
> +++ b/drivers/mtd/ubi/debug.c
> @@ -393,9 +393,6 @@ static void *eraseblk_count_seq_start(struct seq_file *s, loff_t *pos)
>  {
>         struct ubi_device *ubi = s->private;
>
> -       if (*pos == 0)
> -               return SEQ_START_TOKEN;
> -
>         if (*pos < ubi->peb_count)
>                 return pos;
>
> @@ -409,8 +406,6 @@ static void *eraseblk_count_seq_next(struct seq_file *s, void *v, loff_t *pos)
>  {
>         struct ubi_device *ubi = s->private;
>
> -       if (v == SEQ_START_TOKEN)
> -               return pos;
>         (*pos)++;
>
>         if (*pos < ubi->peb_count)
> @@ -432,11 +427,8 @@ static int eraseblk_count_seq_show(struct seq_file *s, void *iter)
>         int err;
>
>         /* If this is the start, print a header */
> -       if (iter == SEQ_START_TOKEN) {
> -               seq_puts(s,
> -                        "physical_block_number\terase_count\tblock_status\tread_status\n");
> -               return 0;
> -       }
> +       if (*block_number == 0)
> +               seq_puts(s, "physical_block_number\terase_count\n");
>
>         err = ubi_io_is_bad(ubi, *block_number);
>         if (err)
> --

Applied!

-- 
Thanks,
//richard

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ