Re: [PATCH v2] selinux: sel_avc_get_stat_idx should increase position index

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Feb 1, 2020 at 2:49 AM Vasily Averin <vvs@xxxxxxxxxxxxx> wrote:
>
> If seq_file .next function does not change position index,
> read after some lseek can generate unexpected output.
>
> $ dd if=/sys/fs/selinux/avc/cache_stats # usual output
> lookups hits misses allocations reclaims frees
> 817223 810034 7189 7189 6992 7037
> 1934894 1926896 7998 7998 7632 7683
> 1322812 1317176 5636 5636 5456 5507
> 1560571 1551548 9023 9023 9056 9115
> 0+1 records in
> 0+1 records out
> 189 bytes copied, 5,1564e-05 s, 3,7 MB/s
>
> $# read after lseek to midle of last line
> $ dd if=/sys/fs/selinux/avc/cache_stats bs=180 skip=1
> dd: /sys/fs/selinux/avc/cache_stats: cannot skip to specified offset
> 056 9115   <<<< end of last line
> 1560571 1551548 9023 9023 9056 9115  <<< whole last line once again
> 0+1 records in
> 0+1 records out
> 45 bytes copied, 8,7221e-05 s, 516 kB/s
>
> $# read after lseek beyond  end of of file
> $ dd if=/sys/fs/selinux/avc/cache_stats bs=1000 skip=1
> dd: /sys/fs/selinux/avc/cache_stats: cannot skip to specified offset
> 1560571 1551548 9023 9023 9056 9115  <<<< generates whole last line
> 0+1 records in
> 0+1 records out
> 36 bytes copied, 9,0934e-05 s, 396 kB/s
>
> https://bugzilla.kernel.org/show_bug.cgi?id=206283
> Signed-off-by: Vasily Averin <vvs@xxxxxxxxxxxxx>
> ---
>  security/selinux/selinuxfs.c | 1 +
>  1 file changed, 1 insertion(+)

This is better, thank you.  I've queued this up for selinux/next,
you'll see it in the repo once the merge window closes.

> diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c
> index ee94fa4..ad5530e 100644
> --- a/security/selinux/selinuxfs.c
> +++ b/security/selinux/selinuxfs.c
> @@ -1504,6 +1504,7 @@ static struct avc_cache_stats *sel_avc_get_stat_idx(loff_t *idx)
>                 *idx = cpu + 1;
>                 return &per_cpu(avc_cache_stats, cpu);
>         }
> +       (*idx)++;
>         return NULL;
>  }
>
> --
> 1.8.3.1
>


-- 
paul moore
www.paul-moore.com



[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux