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] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 9 Jan 2023 11:11:41 -0800
From:   "Paul E. McKenney" <paulmck@...nel.org>
To:     Willy Tarreau <w@....eu>
Cc:     linux-kernel@...r.kernel.org, Warner Losh <imp@...imp.com>,
        Sven Schnelle <svens@...ux.ibm.com>
Subject: Re: [PATCH 0/6] pending bug fixes for nolibc

On Mon, Jan 09, 2023 at 08:54:36AM +0100, Willy Tarreau wrote:
> Hello Paul,
> 
> please consider the current patch series for merging into your fixes queue.
> The intent is to get them before 6.2, then backported where relevant.
> 
> It addresses the following bugs:
>   - fd_set was incorrectly defined as arrays of u32 instead of long,
>     which breaks BE64. Fix courtesy of Sven Schnelle.
> 
>   - S_ISxxx macros were incorrectly testing the bits after applying them
>     instead of applying S_ISFMT to the value. Fix from Warner Losh.
> 
>   - the mips code was randomly broken due to an unprotected "noreorder"
>     directive in the _start code that would prevent the assembler from
>     filling delayed slots, and randomly leaving other instructions there
> 
>   - since the split of the single include file into multiple files, we're
>     implicitly refraining from including some which are not explicitly
>     added in the code. It causes build failures when such files contain
>     definitions for functions that may be used e.g. by libgcc, such as
>     raise() or memset(), which are often called only by a few archs at
>     certain optimization levels only.
> 
>   - gcc 11.3 in ARM thumb2 mode at -O2 was able to recognize a memset()
>     construction inside the memset() definition, and it replaced it with
>     a call to... memset(). We cannot impose to userland to build with
>     -ffreestanding so the introduction of an empty asm() statement in
>     the loop was enough to stop this.
> 
>   - most of the O_* macros were wrong on RISCV because their octal value
>     was used as a hexadecimal one when the platform was introduced. This
>     was revealed by the selftest breaking in getdents64().
> 
> The series was tested on x86_64, i386, armv5, armv7, thumb1, thumb2,
> mips and riscv, all at -O0, -Os and -O3. This is based on the "nolibc"
> branch of your linux-rcu tree. Do not hesitate to let me know if you
> prefer that I rebase it on a different one.

"81 test(s) passed", so queued at urgent-nolibc.2023.01.09a, thank you!

Also, thank you for the detailed cover letter, which I co-opted into the
signed tag.  But please check to make sure that my wordsmithing didn't
break anything.

If all goes well, I will send the pull request to Linus before the end
of this week.

							Thanx, Paul

> Thank you!
> Willy
> 
> ---
> Sven Schnelle (1):
>   nolibc: fix fd_set type
> 
> Warner Losh (1):
>   tools/nolibc: Fix S_ISxxx macros
> 
> Willy Tarreau (4):
>   tools/nolibc: restore mips branch ordering in the _start block
>   tools/nolibc: fix missing includes causing build issues at -O0
>   tools/nolibc: prevent gcc from making memset() loop over itself
>   tools/nolibc: fix the O_* fcntl/open macro definitions for riscv
> 
>  tools/include/nolibc/arch-mips.h  |  2 +
>  tools/include/nolibc/arch-riscv.h | 14 +++----
>  tools/include/nolibc/ctype.h      |  3 ++
>  tools/include/nolibc/errno.h      |  3 ++
>  tools/include/nolibc/signal.h     |  3 ++
>  tools/include/nolibc/stdio.h      |  3 ++
>  tools/include/nolibc/stdlib.h     |  3 ++
>  tools/include/nolibc/string.h     |  8 +++-
>  tools/include/nolibc/sys.h        |  2 +
>  tools/include/nolibc/time.h       |  3 ++
>  tools/include/nolibc/types.h      | 70 ++++++++++++++++++-------------
>  tools/include/nolibc/unistd.h     |  3 ++
>  12 files changed, 79 insertions(+), 38 deletions(-)
> 
> -- 
> 2.35.3
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ