On Sat, Sep 19, 2026 at 04:34:54PM +0100, Julian Braha wrote:
> On 9/19/26 01:59, Kees Cook wrote:
> [...]
> the X condition here only applies to the value of y, but not to the type
> declaration of bool. Besides hurting readability, I can imagine a user
> making a mistake by attempting something like this:
> 
>   def_bool 'y' if X
>   def_tristate 'y' if !X
> 
> thinking that they're making the type conditional. Of course, the
> interpreter warns if this is attempted, so you won't actually find any
> of these in the tree.

Yeah, _this_ case is warned on, so no real issue there.

> The second problem, is that since the order of defaults matters and
> conditions can shadow each other, def_<type> makes it harder for users
> to get defaults right. In the past, I've seen several config options
> with bugged defaults due to 'default' + 'def_<type>' [2][3][4].

This is the one I, too, got worried about. From your example:

 config GUEST_STATE_BUFFER_TEST
-       def_tristate n
+       def_tristate KUNIT_ALL_TESTS
        prompt "Enable Guest State Buffer unit tests"
        depends on KUNIT
        depends on KVM_BOOK3S_HV_POSSIBLE
-       default KUNIT_ALL_TESTS
        help

Is there a way to detect this state? (I assume as a follow-up; it's a
general problem.)

> > Signed-off-by: Kees Cook <[email protected]>
> 
> Tested-by: Julian Braha <[email protected]>
> Reviewed-by: Julian Braha <[email protected]>

Thanks!

-- 
Kees Cook

Reply via email to