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: <20151006092231.GC2681@nebuchadnezzar.informatik.uni-erlangen.de>
Date:	Tue, 6 Oct 2015 11:22:31 +0200
From:	Valentin Rothberg <valentinrothberg@...il.com>
To:	Paul Bolle <pebolle@...cali.nl>
Cc:	"Luis R. Rodriguez" <mcgrof@...e.com>,
	"Luis R. Rodriguez" <mcgrof@...not-panic.com>, mmarek@...e.com,
	josh@...htriplett.org, jbottomley@...n.com, geert@...ux-m68k.org,
	herbert@...dor.apana.org.au, tiwai@...e.de, corbet@....net,
	linux-kbuild@...r.kernel.org, linux-doc@...r.kernel.org,
	linux-kernel@...r.kernel.org, roberto@...osmo.org, zack@...ilon.cc,
	soos.mate@...il.com, skl@....ua.pt, iouliia@....ua.pt,
	Armin Biere <biere@....at>,
	Julia Lawall <julia.lawall@...6.fr>, ziegler@...fau.de
Subject: Re: [PATCH v3] kbuild: document recursive dependency limitation /
 resolution

Hi Paul,

On Oct 06 '15 10:32, Paul Bolle wrote:
> Hi Valentin,
> 
> On di, 2015-10-06 at 10:19 +0200, Valentin Rothberg wrote:
> > I think that a general remark that using selects should be discouraged
> > as, besides causing the recursive issue, selects can also break
> > dependencies.
> 
> How do selects break dependencies?

Consider the following example (I also attached it as a path):

config A
    bool "CONFIG A"

config B
    bool "CONFIG B"
    depends on !A

config C
    bool "CONFIG C"
    depends on A
    select B

The option B and C are clearly contradicting with respect to A.
However, when A is set, C can be set as well because Kconfig does not
visit the dependencies of the select target (in this case B).  And since
Kconfig does not visit the dependencies, it breaks the dependencies of B
(!A).

You can test the example after applying the patch via:
   $ make KBUILD_KCONFIG=bad_selects.Kconfig menuconfig

Set A, then set C and you'll see that B is set to 'y' as well.

Kind regards,
  Valentin

View attachment "bad_selects.patch" of type "text/x-diff" (315 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ