Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Apr 2014 20:59:09 +0300
From:      Kimmo Paasiala <kpaasial@icloud.com>
To:        Ben Laurie <benl@freebsd.org>
Cc:        =?windows-1252?Q?Dag-Erling_Sm=F8rgrav?= <des@des.no>, "Ronald F. Guilmette" <rfg@tristatelogic.com>, "freebsd-security@freebsd.org security" <freebsd-security@freebsd.org>
Subject:   Re: OpenSSL static analysis, was: De Raadt + FBSD + OpenSSH + hole?
Message-ID:  <1705A4DB-6413-442E-8850-E629EC1702F2@icloud.com>
In-Reply-To: <CAG5KPzyTCTbe_vTcP8HDa_KU0agNZQjzVmQ4XnZZjgGFEVnyaQ@mail.gmail.com>
References:  <DC2F9726-881B-4D42-879F-61377CA0210D@mac.com> <8783.1398202137@server1.tristatelogic.com> <20140423003400.GA8271@glaze.hydra> <20140423010054.2891E143D098@rock.dv.isc.org> <20140423012206.GB8271@glaze.hydra> <86bnvpoav7.fsf@nine.des.no> <CAG5KPzyTCTbe_vTcP8HDa_KU0agNZQjzVmQ4XnZZjgGFEVnyaQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 25.4.2014, at 17.15, Ben Laurie <benl@freebsd.org> wrote:

> On 25 April 2014 13:24, Dag-Erling Sm=F8rgrav <des@des.no> wrote:
>> Chad Perrin <code@apotheon.net> writes:
>>> Obviously, human judgment is an important part of the process of =
finding
>>> and fixing bugs.  If it wasn't, the last program we'd ever have to =
debug
>>> would be the one that finds and fixes bugs.
>>=20
>> https://en.wikipedia.org/wiki/Halting_problem
>>=20
>> Oh, wait, is this one of those conversations where knowledge and =
facts
>> are not welcome?
>=20
> Curious what the halting problem can tell us about finding/fixing =
bugs?
>=20

It and its direct implications mean that it=92s provably impossible to =
write a program X that would take another program A as its input and be =
able to decide with 100% certainty whether this other program A has a =
certain property or not.

In the actual halting problem the property is =93The program runs to =
completion and produces a result with every possible input=94. A classic =
real world example is when property is set to =93The program A is/has a =
virus=94. The halting problem applies to this discussion very naturally =
if you use the property =93The program A has a buffer overflow =
vulnerability=94 or =93The program A uses memory that has already been =
free()=92d=94. None of these properties (or any other similar property) =
can be detected programmatically with 100% certainty, that is what the =
halting problem tells you about finding bugs.

In essence all this is saying that is foolish to claim that an automated =
code analyzer could find all bugs in a given piece of code, outside some =
very trivial programs it is just not going to happen.
=20
-Kimmo







Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1705A4DB-6413-442E-8850-E629EC1702F2>