<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Thoughtfulness on the OpenSSL bug</title>
	<atom:link href="http://changelog.complete.org/archives/714-thoughtfulness-on-the-openssl-bug/feed" rel="self" type="application/rss+xml" />
	<link>http://changelog.complete.org/archives/714-thoughtfulness-on-the-openssl-bug</link>
	<description>Viewpoints on technology, society, and government</description>
	<lastBuildDate>Tue, 14 May 2013 02:23:41 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>By: Jay Ballou</title>
		<link>http://changelog.complete.org/archives/714-thoughtfulness-on-the-openssl-bug/comment-page-1#comment-2200</link>
		<dc:creator>Jay Ballou</dc:creator>
		<pubDate>Mon, 19 May 2008 23:02:23 +0000</pubDate>
		<guid isPermaLink="false">http://changelog2.complete.org/archives/714-thoughtfulness-on-the-openssl-bug.html#comment-2200</guid>
		<description><![CDATA[&quot;Sure, it&#039;s only modifiable if it&#039;s a pointer... but pointers are the only practical way to pass many things: strings, buffers of any type really, arrays... the list goes on.&quot;

That&#039;s what const and paying attention to compiler warnings are for. As a professional programmer who has written in C for 30 years, I can say that linux code suffers seriously from lack of code quality. The only reason it isn&#039;t even more horribly buggy than it is, is because so many bodies test open source code. But better written code wouldn&#039;t need so many bodies to be bug-free.

&quot;This bug could have been caught by testing whether generated keys follow certain unexpected distributions.&quot;

Indeed. &quot;peer review&quot; is highly overrated. What would serve better is peers performing QA functions such as writing test cases.]]></description>
		<content:encoded><![CDATA[<p>&#8220;Sure, it&#8217;s only modifiable if it&#8217;s a pointer&#8230; but pointers are the only practical way to pass many things: strings, buffers of any type really, arrays&#8230; the list goes on.&#8221;</p>
<p>That&#8217;s what const and paying attention to compiler warnings are for. As a professional programmer who has written in C for 30 years, I can say that linux code suffers seriously from lack of code quality. The only reason it isn&#8217;t even more horribly buggy than it is, is because so many bodies test open source code. But better written code wouldn&#8217;t need so many bodies to be bug-free.</p>
<p>&#8220;This bug could have been caught by testing whether generated keys follow certain unexpected distributions.&#8221;</p>
<p>Indeed. &#8220;peer review&#8221; is highly overrated. What would serve better is peers performing QA functions such as writing test cases.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon</title>
		<link>http://changelog.complete.org/archives/714-thoughtfulness-on-the-openssl-bug/comment-page-1#comment-2196</link>
		<dc:creator>Jon</dc:creator>
		<pubDate>Thu, 15 May 2008 11:01:08 +0000</pubDate>
		<guid isPermaLink="false">http://changelog2.complete.org/archives/714-thoughtfulness-on-the-openssl-bug.html#comment-2196</guid>
		<description><![CDATA[In general, it is impossible to prove that something is random, and difficult to ascertain that something is sufficiently random, but I do think some kind of regression test could be useful. I&#039;m thinking of doing something a bit like the visual noise plots used on random.org to demonstrate the php rand() rubbish-ness.]]></description>
		<content:encoded><![CDATA[<p>In general, it is impossible to prove that something is random, and difficult to ascertain that something is sufficiently random, but I do think some kind of regression test could be useful. I&#8217;m thinking of doing something a bit like the visual noise plots used on random.org to demonstrate the php rand() rubbish-ness.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: crf</title>
		<link>http://changelog.complete.org/archives/714-thoughtfulness-on-the-openssl-bug/comment-page-1#comment-2195</link>
		<dc:creator>crf</dc:creator>
		<pubDate>Thu, 15 May 2008 06:24:36 +0000</pubDate>
		<guid isPermaLink="false">http://changelog2.complete.org/archives/714-thoughtfulness-on-the-openssl-bug.html#comment-2195</guid>
		<description><![CDATA[There should be testing of patched programs before they are released, when feasible. This bug could have been caught by testing whether generated keys follow certain unexpected distributions.]]></description>
		<content:encoded><![CDATA[<p>There should be testing of patched programs before they are released, when feasible. This bug could have been caught by testing whether generated keys follow certain unexpected distributions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Goerzen</title>
		<link>http://changelog.complete.org/archives/714-thoughtfulness-on-the-openssl-bug/comment-page-1#comment-2194</link>
		<dc:creator>John Goerzen</dc:creator>
		<pubDate>Wed, 14 May 2008 22:58:52 +0000</pubDate>
		<guid isPermaLink="false">http://changelog2.complete.org/archives/714-thoughtfulness-on-the-openssl-bug.html#comment-2194</guid>
		<description><![CDATA[Sure, it&#039;s only modifiable if it&#039;s a pointer... but pointers are the only practical way to pass many things: strings, buffers of any type really, arrays... the list goes on.]]></description>
		<content:encoded><![CDATA[<p>Sure, it&#8217;s only modifiable if it&#8217;s a pointer&#8230; but pointers are the only practical way to pass many things: strings, buffers of any type really, arrays&#8230; the list goes on.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jldugger</title>
		<link>http://changelog.complete.org/archives/714-thoughtfulness-on-the-openssl-bug/comment-page-1#comment-2193</link>
		<dc:creator>jldugger</dc:creator>
		<pubDate>Wed, 14 May 2008 22:47:11 +0000</pubDate>
		<guid isPermaLink="false">http://changelog2.complete.org/archives/714-thoughtfulness-on-the-openssl-bug.html#comment-2193</guid>
		<description><![CDATA[&quot;Especially since you may be dealing with functions that call other functions 5 deep, and one of those functions modifies what you thought was an input-only parameter in certain rare cases.&quot;

Well, its usually pretty easy to tell when something on the stack is modifiable -- when it&#039;s handled as a pointer. If the function calls are passing ints by reference, that&#039;s a hint that there&#039;s something stupid afoot. But yes, it&#039;s a challenge to go from finding a bug to writing a correct fix. It&#039;s simple to load up gdb and watch a segfault in xkb, but it&#039;s another thing to understand the correct fix (it frustrates me a bit when the upstream fix is a simple &quot;if null -&gt; return 0&quot; -- I could have done that!).  

On a more general note -- why isn&#039;t openSSL using /dev/random? It seems as though the ideal solution is for  security systems to use that and then make sure it&#039;s perfect.]]></description>
		<content:encoded><![CDATA[<p>&#8220;Especially since you may be dealing with functions that call other functions 5 deep, and one of those functions modifies what you thought was an input-only parameter in certain rare cases.&#8221;</p>
<p>Well, its usually pretty easy to tell when something on the stack is modifiable &#8212; when it&#8217;s handled as a pointer. If the function calls are passing ints by reference, that&#8217;s a hint that there&#8217;s something stupid afoot. But yes, it&#8217;s a challenge to go from finding a bug to writing a correct fix. It&#8217;s simple to load up gdb and watch a segfault in xkb, but it&#8217;s another thing to understand the correct fix (it frustrates me a bit when the upstream fix is a simple &#8220;if null -> return 0&#8243; &#8212; I could have done that!).  </p>
<p>On a more general note &#8212; why isn&#8217;t openSSL using /dev/random? It seems as though the ideal solution is for  security systems to use that and then make sure it&#8217;s perfect.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
