Weekly edition Kernel Security Distributions Contact Us Search Archives Calendar Subscribe Write for LWN LWN.net FAQ Sponsors

# The 3.8 kernel is out

## The 3.8 kernel is out

Posted Feb 20, 2013 22:51 UTC (Wed) by PaXTeam (subscriber, #24616)
In reply to: The 3.8 kernel is out by paulj
Parent article: The 3.8 kernel is out

if a subset is not well defined, then the encompassing set can't be either. that's exactly the logic fail i pointed out, he assumed two contradictory things as did you ;).

The 3.8 kernel is out

Posted Feb 21, 2013 1:17 UTC (Thu) by SEMW (guest, #52697) [Link]

> if a subset is not well defined, then the encompassing set can't be either

That's trivially false. E.g. 'the subset of Real numbers which have a 9 in their decimal representation' is not a well-defined subset (since decimal representations aren't unique), but the Reals are certainly well-defined. Paulj is right.

The 3.8 kernel is out

Posted Feb 21, 2013 1:45 UTC (Thu) by PaXTeam (subscriber, #24616) [Link]

the set of reals is an 'infinite set' (where the very concept of infinity itself is not well defined), whereas the set of software bugs is a finite set (because we have a finite amount of code in real life) so your (counter?) example has nothing to do with the situation under discussion. but for all i care, we can discuss infinite sets as well. start with that 'well defined' definition of reals (whose set theory are you going to use btw? ;), then also define what 'well defined' means then also define what 'defined' means. i think you're going to lose this argument, but don't let me stop you from trying ;).

The 3.8 kernel is out

Posted Feb 21, 2013 3:55 UTC (Thu) by SEMW (guest, #52697) [Link]

The claim I objected to was "if a subset is not well defined, then the encompassing set can't be either". I gave a toy example to show that it's false. If I'd known you objected to almost all of modern real analysis, from infinite sets to the definition of the reals, I'd have picked a different one. (The example I gave pretty obviously works just fine with any other set as the starting point in place of the reals, finite or infinite).

No, I'm not going to teach you an introductory course in analysis in a reddit comment. Pick up a book. Suffice to say that there are several definitions of the reals and they are provably equivalent. Start at http://en.wikipedia.org/wiki/Construction_of_the_real_num... .

As for what 'well-defined' means for subsets: Let a subset X of a set S be "well-defined" iff there is a single-valued function that maps every element of S to {T,F} such that x maps to T iff x∈ X. (I'm not sure why you're asking me this now - if you didn't know what it meant, why did you make the claim you did?)

> I think you're going to lose this argument, but don't let me stop you from trying ;).

You may have a point there. I'm arguing the trivial with someone who objects to real analysis. I think I was doomed to fail before I began typing.

The 3.8 kernel is out

Posted Feb 21, 2013 12:20 UTC (Thu) by PaXTeam (subscriber, #24616) [Link]

> The claim I objected to was "if a subset is not well defined, then the encompassing set can't be either".

see, that was your problem. you picked a statement out of context and then attacked it (with a poor example at that). see my response to 'dark' below for what you missed.

PS: i'd like to see your single valued function that well defines 'bug', you'll be richly rewarded by all software companies in existence.

The 3.8 kernel is out

Posted Feb 21, 2013 13:32 UTC (Thu) by nix (subscriber, #2304) [Link]

PS: i'd like to see your single valued function that well defines 'bug', you'll be richly rewarded by all software companies in existence.
We have one! Since every single line surely contains either a bug or a design error (given enough change in specifications over time), every line contains a bug.

What we need is a way of identifying the bugs that matter now, or might matter soon. And that is harder.

The 3.8 kernel is out

Posted Feb 21, 2013 13:57 UTC (Thu) by PaXTeam (subscriber, #24616) [Link]

The 3.8 kernel is out

Posted Feb 21, 2013 14:40 UTC (Thu) by hummassa (subscriber, #307) [Link]

It does not work.

The 3.8 kernel is out

Posted Feb 21, 2013 16:01 UTC (Thu) by PaXTeam (subscriber, #24616) [Link]

the url? works fine for me.

The 3.8 kernel is out

Posted Feb 21, 2013 17:54 UTC (Thu) by jimparis (subscriber, #38647) [Link]

Well, the bug in line 3 is a clear design error. It should read "*/" and the comment should have ended there. The rest of the block comment was being used to show copyright, ownership, and changelog information, but this information is clearly incorrect (portions were written after 1992), outdated (Linus is not the sole author of that file), and incomplete (the changelog is a joke).

Now that we've gotten the pedantry out of the way, let's move on to trying to understand the point nix was attempting to make, rather than trying to disprove him with oddly specific code references.

The 3.8 kernel is out

Posted Feb 21, 2013 20:47 UTC (Thu) by PaXTeam (subscriber, #24616) [Link]

> Well, the bug in line 3 is a clear design error.

saying so doesn't make it so. prove it. getting a fix upstream would be fine. then we can move on to the remaining ones, there's quite a few more lines left in linux (nothing to say of the rest of the code we have out there ;).

> It should read "*/" and the comment should have ended there.

wrong, that line of code would also be buggy, since it's part of 'every single line', so you'd be replacing buggy code with buggy code. reductio ad absurdum, if you believe in his nutty theory, you'd have eliminate all code in existence to properly fix any bug.

>[...]let's move on to trying to understand the point nix was attempting to make[...]

he doesn't have one.

The 3.8 kernel is out

Posted Feb 25, 2013 16:38 UTC (Mon) by nix (subscriber, #2304) [Link]

he doesn't have one.
You are, as usual, wrong.

The 3.8 kernel is out

Posted Feb 21, 2013 8:09 UTC (Thu) by dark (subscriber, #8483) [Link]

Hmm, let me give a more tangible example. The well-defined set: all the buildings in Helsinki, as enumerated by the post office. The poorly defined subset: all the buildings in the first set that are ugly.

Surely the introduction of the second set doesn't change anything about the first set.

The 3.8 kernel is out

Posted Feb 21, 2013 12:11 UTC (Thu) by PaXTeam (subscriber, #24616) [Link]

while this is still not quite the subject under discussion (security+bugs), it's at least much closer and i can show you the problem i pointed out originally: if all buildings are ugly (cf. all bugs are security bugs) then just because a building is ugly, it doesn't stop being a building, does it? but then we have a building which is both well defined to be a building and not well defined to be ugly, despite being in one and the same set. that's the logical fail because if these two sets are declared to be equal and one set is well defined (i.e., we can tell what is a software bug, or what is a building) then so must be the other set as well (if we want the original claim of their being equal to stand), in contradiction to what tialaramex claimed. the obvious resolution of the contradiction is to realize and admit that not all bugs are security bugs but for LWN's resident security experts hell would have to freeze over for that to happen ;).