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]
Message-ID: <083ebd92-4b3f-47f8-bf0f-395a604b5f05@kernel.org>
Date: Fri, 12 Dec 2025 02:30:48 +0900
From: Daniel Gomez <da.gomez@...nel.org>
To: Sami Tolvanen <samitolvanen@...gle.com>,
 Dan Carpenter <dan.carpenter@...aro.org>
Cc: "Luck, Tony" <tony.luck@...el.com>, Chris Li <sparse@...isli.org>,
 Eric Biggers <ebiggers@...nel.org>, Kees Cook <kees@...nel.org>,
 Luis Chamberlain <mcgrof@...nel.org>, Rusty Russell <rusty@...tcorp.com.au>,
 Petr Pavlu <petr.pavlu@...e.com>,
 "linux-modules@...r.kernel.org" <linux-modules@...r.kernel.org>,
 Malcolm Priestley <tvboxspy@...il.com>,
 Mauro Carvalho Chehab <mchehab@...nel.org>,
 Hans Verkuil <hverkuil@...nel.org>,
 Uwe Kleine-König <u.kleine-koenig@...gutronix.de>,
 "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
 "linux-media@...r.kernel.org" <linux-media@...r.kernel.org>,
 "linux-hardening@...r.kernel.org" <linux-hardening@...r.kernel.org>
Subject: Re: [PATCH 3/3] module: Add compile-time check for embedded NUL
 characters



On 12/12/2025 02.03, Sami Tolvanen wrote:
> On Thu, Dec 11, 2025 at 12:28 AM Dan Carpenter <dan.carpenter@...aro.org> wrote:
>>
>> On Wed, Dec 10, 2025 at 02:29:45PM -0800, Luck, Tony wrote:
>>>> diff --git a/expand.c b/expand.c
>>>> index f14e7181..71221d35 100644
>>>> --- a/expand.c
>>>> +++ b/expand.c
>>>> @@ -535,6 +535,8 @@ static int expand_compare(struct expression *expr)
>>>>                     expr->taint = 0;
>>>>                     return 0;
>>>>             }
>>>> +           if (left->flags & CEF_ICE && right->flags & CEF_ICE)
>>>> +                   expr->flags |= CEF_SET_ICE;
>>>>             if (simplify_cmp_binop(expr, left->ctype))
>>>>                     return 0;
>>>>             if (simplify_float_cmp(expr, left->ctype))
>>
>> I'm not an expert in the C standard, but this feels correct to me.
> 
> It only fixes comparisons though, the problem still exists for other
> expressions. For example, while `_Static_assert(__builtin_strlen("")
> == 0);` works with this change,
> `_Static_assert(!__builtin_strlen(""));` still fails. Perhaps there's
> a better way to fix this than changing each expression expansion
> function to handle this flag?

Maybe the flag fix just needs to be applied to the evaluation? Other op
structs do the same. But Dan's patch did not implement evaluate. E.g.:

static struct symbol_op constant_p_op = {
	.evaluate = evaluate_to_int_const_expr,
	.expand = expand_constant_p
};


> 
> Sami

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ