<?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 for codeblog</title>
	<atom:link href="http://www.outflux.net/blog/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.outflux.net/blog</link>
	<description>code is freedom -- patching my itch</description>
	<lastBuildDate>Tue, 24 Jan 2012 19:58:01 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
	<item>
		<title>Comment on fixing vulnerabilities with systemtap by Tim</title>
		<link>http://www.outflux.net/blog/archives/2012/01/22/fixing-vulnerabilities-with-systemtap/comment-page-1/#comment-1242</link>
		<dc:creator>Tim</dc:creator>
		<pubDate>Tue, 24 Jan 2012 19:58:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=562#comment-1242</guid>
		<description>... okay the comment-function filters out &quot;what-looks-like-html&quot;.
The if-line should read:
    if((now LESSTHAN last) &#124;&#124; (( now - last ) GREATERTHAN HZ() )) {

(I hope you don&#039;t mind me spamming your blog ;-) )</description>
		<content:encoded><![CDATA[<p>&#8230; okay the comment-function filters out &#8220;what-looks-like-html&#8221;.<br />
The if-line should read:<br />
    if((now LESSTHAN last) || (( now &#8211; last ) GREATERTHAN HZ() )) {</p>
<p>(I hope you don&#8217;t mind me spamming your blog ;-) )</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on fixing vulnerabilities with systemtap by Tim</title>
		<link>http://www.outflux.net/blog/archives/2012/01/22/fixing-vulnerabilities-with-systemtap/comment-page-1/#comment-1241</link>
		<dc:creator>Tim</dc:creator>
		<pubDate>Tue, 24 Jan 2012 19:49:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=562#comment-1241</guid>
		<description>another remark:
to let the call to write fail instead of returning &quot;0 bytes written&quot;, I added another probe to the systemtap-script:

probe kernel.function(&quot;mem_write@fs/proc/base.c&quot;).return {
    $return = -1
}

With this the exploit-program exits/fails. Without the return-probe, the forked su enters an infinite loop ( &quot;Please write these 88 bytes&quot; -&gt; &quot;I successfully wrote 0 bytes&quot; -&gt; &quot;okay, then write these remaining 88 bytes&quot; -&gt; and so on....)

I found this, because I wanted to log these calls and added a &quot;println&quot; to the call-probe:

root@host:~# cat logit.stp 
probe kernel.function(&quot;mem_write@fs/proc/base.c&quot;).call {
        println(&quot;write attempt: &quot; . sprint($count) . &quot; bytes (&quot;. user_string_quoted($buf) . &quot;) at offset &quot; . sprint(kernel_long($ppos)))
  $count = 0
}

root@host:~# stap -g logit.stp
[.....]
write attempt: 88 bytes (&quot;Unbekannte ID: H1\377\260i1705H1\377\260j1705H1\366@\26717@\26602\260!&quot;...) at offset 4202665
write attempt: 88 bytes (&quot;Unbekannte ID: H1\377\260i1705H1\377\260j1705H1\366@\26717@\26602\260!&quot;...) at offset 4202665
write attempt: 88 bytes (&quot;Unbekannte ID: H1\377\260i1705H1\377\260j1705H1\366@\26717@\26602\260!&quot;...) at offset 4202665
write attempt: 88 bytes (&quot;Unbekannte ID: H1\377\260i1705H1\377\260j1705H1\366@\26717@\26602\260!&quot;...) at offset 4202665
WARNING: Number of errors: 1, skipped probes: 0
WARNING: There were 38056 transport failures.
Warning: /usr/bin/staprun exited with status: 1
Pass 5: run failed.  Try again with another &#039;--vp 00001&#039; option.



so my &quot;final&quot; version of the systemtap-script has rate-limiting on the print-line:


global last = 0;
probe kernel.function(&quot;mem_write@fs/proc/base.c&quot;).call {
    now = jiffies()
    if((now  HZ() )) {
        println(&quot;write attempt: &quot; . sprint($count) . &quot; bytes (&quot;. user_string_n_quoted($buf,$count) . &quot;) at offset &quot; . sprint(kernel_long($ppos)))
        last = now
    }
    $count = 0
}
probe kernel.function(&quot;mem_write@fs/proc/base.c&quot;).return {
    $return = -1
}



result:
tim@host:~/src/CVE$ ./correct_proc_mem_reproducer 
write: Operation not permitted
not vulnerable

this also shows ASLR at work (the offset differs from call to call):
write attempt: 8 bytes (&quot;33\b@&quot;) at offset 140737430350128
write attempt: 8 bytes (&quot;33\b@&quot;) at offset 140736850297152</description>
		<content:encoded><![CDATA[<p>another remark:<br />
to let the call to write fail instead of returning &#8220;0 bytes written&#8221;, I added another probe to the systemtap-script:</p>
<p>probe kernel.function(&#8220;mem_write@fs/proc/base.c&#8221;).return {<br />
    $return = -1<br />
}</p>
<p>With this the exploit-program exits/fails. Without the return-probe, the forked su enters an infinite loop ( &#8220;Please write these 88 bytes&#8221; -&gt; &#8220;I successfully wrote 0 bytes&#8221; -&gt; &#8220;okay, then write these remaining 88 bytes&#8221; -&gt; and so on&#8230;.)</p>
<p>I found this, because I wanted to log these calls and added a &#8220;println&#8221; to the call-probe:</p>
<p>root@host:~# cat logit.stp<br />
probe kernel.function(&#8220;mem_write@fs/proc/base.c&#8221;).call {<br />
        println(&#8220;write attempt: &#8221; . sprint($count) . &#8221; bytes (&#8220;. user_string_quoted($buf) . &#8220;) at offset &#8221; . sprint(kernel_long($ppos)))<br />
  $count = 0<br />
}</p>
<p>root@host:~# stap -g logit.stp<br />
[.....]<br />
write attempt: 88 bytes (&#8220;Unbekannte ID: H1\377\260i1705H1\377\260j1705H1\366@\26717@\26602\260!&#8221;&#8230;) at offset 4202665<br />
write attempt: 88 bytes (&#8220;Unbekannte ID: H1\377\260i1705H1\377\260j1705H1\366@\26717@\26602\260!&#8221;&#8230;) at offset 4202665<br />
write attempt: 88 bytes (&#8220;Unbekannte ID: H1\377\260i1705H1\377\260j1705H1\366@\26717@\26602\260!&#8221;&#8230;) at offset 4202665<br />
write attempt: 88 bytes (&#8220;Unbekannte ID: H1\377\260i1705H1\377\260j1705H1\366@\26717@\26602\260!&#8221;&#8230;) at offset 4202665<br />
WARNING: Number of errors: 1, skipped probes: 0<br />
WARNING: There were 38056 transport failures.<br />
Warning: /usr/bin/staprun exited with status: 1<br />
Pass 5: run failed.  Try again with another &#8216;&#8211;vp 00001&#8242; option.</p>
<p>so my &#8220;final&#8221; version of the systemtap-script has rate-limiting on the print-line:</p>
<p>global last = 0;<br />
probe kernel.function(&#8220;mem_write@fs/proc/base.c&#8221;).call {<br />
    now = jiffies()<br />
    if((now  HZ() )) {<br />
        println(&#8220;write attempt: &#8221; . sprint($count) . &#8221; bytes (&#8220;. user_string_n_quoted($buf,$count) . &#8220;) at offset &#8221; . sprint(kernel_long($ppos)))<br />
        last = now<br />
    }<br />
    $count = 0<br />
}<br />
probe kernel.function(&#8220;mem_write@fs/proc/base.c&#8221;).return {<br />
    $return = -1<br />
}</p>
<p>result:<br />
tim@host:~/src/CVE$ ./correct_proc_mem_reproducer<br />
write: Operation not permitted<br />
not vulnerable</p>
<p>this also shows ASLR at work (the offset differs from call to call):<br />
write attempt: 8 bytes (&#8220;33\b@&#8221;) at offset 140737430350128<br />
write attempt: 8 bytes (&#8220;33\b@&#8221;) at offset 140736850297152</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on fixing vulnerabilities with systemtap by Tim</title>
		<link>http://www.outflux.net/blog/archives/2012/01/22/fixing-vulnerabilities-with-systemtap/comment-page-1/#comment-1240</link>
		<dc:creator>Tim</dc:creator>
		<pubDate>Tue, 24 Jan 2012 01:16:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=562#comment-1240</guid>
		<description>A little addendum:
Instead of compiling and running the systemtap-module each time, you can use staprun:
1. Step: give a module a (persistent) name:
stap -g -m cve_2012_0056 CVE-2012-0056.stp -p4
(the options mean: -g Guru-mode, to allow writing to the count variable, -m cve_2012_0056  name of the module, -p4 stop after step 4 (creating the module, instead of step 5, running it)
now a file cve_2012_0056.ko is created.
2. Step: copy it to a proper place:
mkdir /lib/modules/$(uname -r)/systemtap
cp cve_2012_0056.ko /lib/modules/$(uname -r)/systemtap
3. Step: run it:
staprun -L cve_2012_0056
(this can be done by any user in the group stapusr, or root)

What is gained by using this? After creating the module in step 1, the debuginfos are no longer necessary:
tim@host:~/src/CVE$ ./correct_proc_mem_reproducer 
vulnerable
tim@host:~/src/CVE$ staprun -L cve_2012_0056

Disconnecting from systemtap module.
To reconnect, type &quot;staprun -A cve_2012_0056&quot;
tim@host:~/src/CVE$ ./correct_proc_mem_reproducer 
not vulnerable
tim@host:~/src/CVE$ dpkg-query -W -f=&#039;${Package}\t${Status}\n&#039; linux-image-$(uname -r)-dbg
linux-image-3.2.0-1-amd64-dbg   unknown ok not-installed

(of course you would normally NOT run the script with your normal user account, this is for demonstration only.....)
If I understand systemtap right, you could also transfer the module to other hosts running the same kernel. So this module I created should work for all hosts running linux-image-3.2.0-1-amd64, version 3.2.1-1 (current unstable).</description>
		<content:encoded><![CDATA[<p>A little addendum:<br />
Instead of compiling and running the systemtap-module each time, you can use staprun:<br />
1. Step: give a module a (persistent) name:<br />
stap -g -m cve_2012_0056 CVE-2012-0056.stp -p4<br />
(the options mean: -g Guru-mode, to allow writing to the count variable, -m cve_2012_0056  name of the module, -p4 stop after step 4 (creating the module, instead of step 5, running it)<br />
now a file cve_2012_0056.ko is created.<br />
2. Step: copy it to a proper place:<br />
mkdir /lib/modules/$(uname -r)/systemtap<br />
cp cve_2012_0056.ko /lib/modules/$(uname -r)/systemtap<br />
3. Step: run it:<br />
staprun -L cve_2012_0056<br />
(this can be done by any user in the group stapusr, or root)</p>
<p>What is gained by using this? After creating the module in step 1, the debuginfos are no longer necessary:<br />
tim@host:~/src/CVE$ ./correct_proc_mem_reproducer<br />
vulnerable<br />
tim@host:~/src/CVE$ staprun -L cve_2012_0056</p>
<p>Disconnecting from systemtap module.<br />
To reconnect, type &#8220;staprun -A cve_2012_0056&#8243;<br />
tim@host:~/src/CVE$ ./correct_proc_mem_reproducer<br />
not vulnerable<br />
tim@host:~/src/CVE$ dpkg-query -W -f=&#8217;${Package}\t${Status}\n&#8217; linux-image-$(uname -r)-dbg<br />
linux-image-3.2.0-1-amd64-dbg   unknown ok not-installed</p>
<p>(of course you would normally NOT run the script with your normal user account, this is for demonstration only&#8230;..)<br />
If I understand systemtap right, you could also transfer the module to other hosts running the same kernel. So this module I created should work for all hosts running linux-image-3.2.0-1-amd64, version 3.2.1-1 (current unstable).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on fixing vulnerabilities with systemtap by Hunger</title>
		<link>http://www.outflux.net/blog/archives/2012/01/22/fixing-vulnerabilities-with-systemtap/comment-page-1/#comment-1239</link>
		<dc:creator>Hunger</dc:creator>
		<pubDate>Mon, 23 Jan 2012 13:15:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=562#comment-1239</guid>
		<description>http://hunger.hu/really_correct_proc_mem_reproducer.c

modified since on 32-bit architectures both the original and spender&#039;s
reproducer had reported &quot;not vulnerable&quot; wrongly because of a bad cast
and incorrect return value checking... ;)</description>
		<content:encoded><![CDATA[<p><a href="http://hunger.hu/really_correct_proc_mem_reproducer.c">http://hunger.hu/really_correct_proc_mem_reproducer.c</a></p>
<p>modified since on 32-bit architectures both the original and spender&#8217;s<br />
reproducer had reported &#8220;not vulnerable&#8221; wrongly because of a bad cast<br />
and incorrect return value checking&#8230; ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on fixing vulnerabilities with systemtap by Luca Bruno</title>
		<link>http://www.outflux.net/blog/archives/2012/01/22/fixing-vulnerabilities-with-systemtap/comment-page-1/#comment-1238</link>
		<dc:creator>Luca Bruno</dc:creator>
		<pubDate>Mon, 23 Jan 2012 07:08:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=562#comment-1238</guid>
		<description>PoC is public right now...</description>
		<content:encoded><![CDATA[<p>PoC is public right now&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on fixing vulnerabilities with systemtap by Vadim P.</title>
		<link>http://www.outflux.net/blog/archives/2012/01/22/fixing-vulnerabilities-with-systemtap/comment-page-1/#comment-1237</link>
		<dc:creator>Vadim P.</dc:creator>
		<pubDate>Mon, 23 Jan 2012 05:10:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=562#comment-1237</guid>
		<description>That&#039;s very neat.</description>
		<content:encoded><![CDATA[<p>That&#8217;s very neat.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on abusing the FILE structure by Teodor</title>
		<link>http://www.outflux.net/blog/archives/2011/12/22/abusing-the-file-structure/comment-page-1/#comment-1236</link>
		<dc:creator>Teodor</dc:creator>
		<pubDate>Sun, 25 Dec 2011 12:05:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=548#comment-1236</guid>
		<description>This seems too complex for me.. but any reason to use printf(&quot;..0x%x..&quot;) instead of printf(..%#x..)?</description>
		<content:encoded><![CDATA[<p>This seems too complex for me.. but any reason to use printf(&#8220;..0x%x..&#8221;) instead of printf(..%#x..)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on juju bug fixing by Kapil Thangavelu</title>
		<link>http://www.outflux.net/blog/archives/2011/12/07/juju-bug-fixing/comment-page-1/#comment-1232</link>
		<dc:creator>Kapil Thangavelu</dc:creator>
		<pubDate>Fri, 09 Dec 2011 13:49:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=534#comment-1232</guid>
		<description>Fwiw fix #2 is fixed in the ppa.</description>
		<content:encoded><![CDATA[<p>Fwiw fix #2 is fixed in the ppa.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on EC2 instances in support of a BSP by kees</title>
		<link>http://www.outflux.net/blog/archives/2011/12/05/ec2-instances-in-support-of-a-bsp/comment-page-1/#comment-1230</link>
		<dc:creator>kees</dc:creator>
		<pubDate>Tue, 06 Dec 2011 23:00:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=527#comment-1230</guid>
		<description>Ultimately pbuilder and sbuild do the same thing. What I like about sbuild (with schroot) is that you get very close to the same build environment that the Debian and Ubuntu automated builders use (they use sbuild), and you get minimal chroots (via schroot) that you can use for things well beyond just builds.</description>
		<content:encoded><![CDATA[<p>Ultimately pbuilder and sbuild do the same thing. What I like about sbuild (with schroot) is that you get very close to the same build environment that the Debian and Ubuntu automated builders use (they use sbuild), and you get minimal chroots (via schroot) that you can use for things well beyond just builds.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on EC2 instances in support of a BSP by efrain valles</title>
		<link>http://www.outflux.net/blog/archives/2011/12/05/ec2-instances-in-support-of-a-bsp/comment-page-1/#comment-1229</link>
		<dc:creator>efrain valles</dc:creator>
		<pubDate>Tue, 06 Dec 2011 12:39:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=527#comment-1229</guid>
		<description>Sorry if this comes off as a very noob kinda question. I am used to working with pbuilder. How is it different to work with sbuild.</description>
		<content:encoded><![CDATA[<p>Sorry if this comes off as a very noob kinda question. I am used to working with pbuilder. How is it different to work with sbuild.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on EC2 instances in support of a BSP by Benjamin Kerensa</title>
		<link>http://www.outflux.net/blog/archives/2011/12/05/ec2-instances-in-support-of-a-bsp/comment-page-1/#comment-1228</link>
		<dc:creator>Benjamin Kerensa</dc:creator>
		<pubDate>Tue, 06 Dec 2011 02:23:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=527#comment-1228</guid>
		<description>I knew I needed to dig into juju</description>
		<content:encoded><![CDATA[<p>I knew I needed to dig into juju</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on qrcodes by Dustin Kirkland</title>
		<link>http://www.outflux.net/blog/archives/2011/11/15/qrcodes/comment-page-1/#comment-1224</link>
		<dc:creator>Dustin Kirkland</dc:creator>
		<pubDate>Fri, 18 Nov 2011 13:19:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=518#comment-1224</guid>
		<description>Lovely, Kees :-)

Mackenzie, you&#039;re right to be generally suspicious of people on the internet, but I trust that Kees wouldn&#039;t do something malicious here, in his blog, to Planet Ubuntu readers ;-)  And I can confirm that his QR code is in no way &quot;a sick joke&quot;.

Dustin</description>
		<content:encoded><![CDATA[<p>Lovely, Kees :-)</p>
<p>Mackenzie, you&#8217;re right to be generally suspicious of people on the internet, but I trust that Kees wouldn&#8217;t do something malicious here, in his blog, to Planet Ubuntu readers ;-)  And I can confirm that his QR code is in no way &#8220;a sick joke&#8221;.</p>
<p>Dustin</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on qrcodes by Mackenzie</title>
		<link>http://www.outflux.net/blog/archives/2011/11/15/qrcodes/comment-page-1/#comment-1223</link>
		<dc:creator>Mackenzie</dc:creator>
		<pubDate>Wed, 16 Nov 2011 16:42:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=518#comment-1223</guid>
		<description>I don&#039;t scan QR codes from people who do computer security stuff. For example, I work for the company that makes Snort. There&#039;s a QR code on the fridge that says &quot;you know you want to scan it.&quot; I can only surmise this is the Vulnerability Research Team playing a sick joke that will make my phone crash or become infected, so I won&#039;t.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t scan QR codes from people who do computer security stuff. For example, I work for the company that makes Snort. There&#8217;s a QR code on the fridge that says &#8220;you know you want to scan it.&#8221; I can only surmise this is the Vulnerability Research Team playing a sick joke that will make my phone crash or become infected, so I won&#8217;t.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on qrcodes by Frank Ch. Eigler</title>
		<link>http://www.outflux.net/blog/archives/2011/11/15/qrcodes/comment-page-1/#comment-1222</link>
		<dc:creator>Frank Ch. Eigler</dc:creator>
		<pubDate>Wed, 16 Nov 2011 12:18:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=518#comment-1222</guid>
		<description>I was half expecting a self-referential qrcode.</description>
		<content:encoded><![CDATA[<p>I was half expecting a self-referential qrcode.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on pattern visualization by oliver</title>
		<link>http://www.outflux.net/blog/archives/2005/07/13/pattern-visualization/comment-page-1/#comment-1221</link>
		<dc:creator>oliver</dc:creator>
		<pubDate>Fri, 04 Nov 2011 21:57:48 +0000</pubDate>
		<guid isPermaLink="false">http://outflux.net/blog/archives/2005/07/13/pattern-visualization/#comment-1221</guid>
		<description>Just for the record, Hachoir pretty much does this nowadays - maybe it was inspired by this post?</description>
		<content:encoded><![CDATA[<p>Just for the record, Hachoir pretty much does this nowadays &#8211; maybe it was inspired by this post?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by John Pugh</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1217</link>
		<dc:creator>John Pugh</dc:creator>
		<pubDate>Thu, 15 Sep 2011 13:06:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1217</guid>
		<description>Wow...have fun on Chrome OS!!! Good luck with Google.</description>
		<content:encoded><![CDATA[<p>Wow&#8230;have fun on Chrome OS!!! Good luck with Google.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by dann frazier</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1216</link>
		<dc:creator>dann frazier</dc:creator>
		<pubDate>Wed, 14 Sep 2011 22:16:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1216</guid>
		<description>Bummed to see you go - but I comfort myself by knowing that the companies that pay us are just a means to the inevitable end of world domination. Good luck Kees!</description>
		<content:encoded><![CDATA[<p>Bummed to see you go &#8211; but I comfort myself by knowing that the companies that pay us are just a means to the inevitable end of world domination. Good luck Kees!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by Muharem Hrnjadovic</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1215</link>
		<dc:creator>Muharem Hrnjadovic</dc:creator>
		<pubDate>Wed, 14 Sep 2011 20:15:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1215</guid>
		<description>Good luck !!</description>
		<content:encoded><![CDATA[<p>Good luck !!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on greasemonkey and fantasy football by Ryan</title>
		<link>http://www.outflux.net/blog/archives/2005/09/08/greasemonkey-and-fantasy-football/comment-page-1/#comment-1214</link>
		<dc:creator>Ryan</dc:creator>
		<pubDate>Tue, 13 Sep 2011 22:50:57 +0000</pubDate>
		<guid isPermaLink="false">http://outflux.net/blog/archives/2005/09/08/greasemonkey-and-fantasy-football/#comment-1214</guid>
		<description>Would you be able to change this script for me so that the links redirect you to the cbssports team depth chart page instead of yahoo? That would be awesome. Thanks in advance!</description>
		<content:encoded><![CDATA[<p>Would you be able to change this script for me so that the links redirect you to the cbssports team depth chart page instead of yahoo? That would be awesome. Thanks in advance!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by David Planella</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1213</link>
		<dc:creator>David Planella</dc:creator>
		<pubDate>Tue, 13 Sep 2011 17:23:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1213</guid>
		<description>Happy to see you&#039;ll still be around in the Ubuntu community. All the best Kees!</description>
		<content:encoded><![CDATA[<p>Happy to see you&#8217;ll still be around in the Ubuntu community. All the best Kees!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by Chris Coulson</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1212</link>
		<dc:creator>Chris Coulson</dc:creator>
		<pubDate>Tue, 13 Sep 2011 14:07:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1212</guid>
		<description>Kees, I&#039;ve enjoyed working with you during my (relatively short) time at Canonical and, whilst it&#039;s kinda sad to see you go, I wish you all the best in your new job. I hope we&#039;ll still see you around at UDS occasionally, and I look forward to working with you in the Ubuntu community :)</description>
		<content:encoded><![CDATA[<p>Kees, I&#8217;ve enjoyed working with you during my (relatively short) time at Canonical and, whilst it&#8217;s kinda sad to see you go, I wish you all the best in your new job. I hope we&#8217;ll still see you around at UDS occasionally, and I look forward to working with you in the Ubuntu community :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by Marco Rodrigues</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1211</link>
		<dc:creator>Marco Rodrigues</dc:creator>
		<pubDate>Tue, 13 Sep 2011 11:01:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1211</guid>
		<description>Good luck =)</description>
		<content:encoded><![CDATA[<p>Good luck =)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by Elliot Murphy</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1210</link>
		<dc:creator>Elliot Murphy</dc:creator>
		<pubDate>Tue, 13 Sep 2011 02:33:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1210</guid>
		<description>Thanks for all your tireless work, and cheerful attitude. Hope you have a lot of fun at Google, and find time for your disassembler one day.</description>
		<content:encoded><![CDATA[<p>Thanks for all your tireless work, and cheerful attitude. Hope you have a lot of fun at Google, and find time for your disassembler one day.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by Jono Bacon</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1209</link>
		<dc:creator>Jono Bacon</dc:creator>
		<pubDate>Mon, 12 Sep 2011 22:50:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1209</guid>
		<description>All the best, Kees! It has been a pleasure working with you when our paths have crossed. Enjoy Google! :-)</description>
		<content:encoded><![CDATA[<p>All the best, Kees! It has been a pleasure working with you when our paths have crossed. Enjoy Google! :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by Kyle Bader</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1208</link>
		<dc:creator>Kyle Bader</dc:creator>
		<pubDate>Mon, 12 Sep 2011 22:10:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1208</guid>
		<description>Good luck Kees, thanks for all your hard work!</description>
		<content:encoded><![CDATA[<p>Good luck Kees, thanks for all your hard work!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by Jorge</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1206</link>
		<dc:creator>Jorge</dc:creator>
		<pubDate>Mon, 12 Sep 2011 19:27:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1206</guid>
		<description>You&#039;ve been awesome to work with. You&#039;ve been one of the most approachable people on the team and we&#039;re all better because of it. Hope to see you at future UDSes!</description>
		<content:encoded><![CDATA[<p>You&#8217;ve been awesome to work with. You&#8217;ve been one of the most approachable people on the team and we&#8217;re all better because of it. Hope to see you at future UDSes!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by sadig</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1205</link>
		<dc:creator>sadig</dc:creator>
		<pubDate>Mon, 12 Sep 2011 19:16:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1205</guid>
		<description>Hey Kees,

good luck @Google :) 

And thanks for all your work on Ubuntu Security. You were one of the reasons I decided to use Ubuntu as our Server OS for my old company. 
Hopefully, you are still be active on the Ubuntu security, &#039;cause I admire your work and your knowledge.

Greetings from .de,

Stephan aka \sh</description>
		<content:encoded><![CDATA[<p>Hey Kees,</p>
<p>good luck @Google :) </p>
<p>And thanks for all your work on Ubuntu Security. You were one of the reasons I decided to use Ubuntu as our Server OS for my old company.<br />
Hopefully, you are still be active on the Ubuntu security, &#8217;cause I admire your work and your knowledge.</p>
<p>Greetings from .de,</p>
<p>Stephan aka \sh</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by Jamie Strandboge (jdstrand)</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1204</link>
		<dc:creator>Jamie Strandboge (jdstrand)</dc:creator>
		<pubDate>Mon, 12 Sep 2011 19:09:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1204</guid>
		<description>It has a great pleasure working with you over the years. Thanks so much for your friendship and all the hard work you&#039;ve done on Ubuntu. Rest assured our team will continue the great tradition you&#039;ve helped establish, and I look forward in to working with you in the Ubuntu community. Best of luck on your new endeavor! :)</description>
		<content:encoded><![CDATA[<p>It has a great pleasure working with you over the years. Thanks so much for your friendship and all the hard work you&#8217;ve done on Ubuntu. Rest assured our team will continue the great tradition you&#8217;ve helped establish, and I look forward in to working with you in the Ubuntu community. Best of luck on your new endeavor! :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by Jonathan Carter</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1203</link>
		<dc:creator>Jonathan Carter</dc:creator>
		<pubDate>Mon, 12 Sep 2011 18:59:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1203</guid>
		<description>Will miss seeing your name on the security updates... ChromeOS sounds like a lot of fun, enjoy it!</description>
		<content:encoded><![CDATA[<p>Will miss seeing your name on the security updates&#8230; ChromeOS sounds like a lot of fun, enjoy it!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 5 years with Canonical by jduck</title>
		<link>http://www.outflux.net/blog/archives/2011/09/12/5-years-with-canonical/comment-page-1/#comment-1202</link>
		<dc:creator>jduck</dc:creator>
		<pubDate>Mon, 12 Sep 2011 18:29:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=511#comment-1202</guid>
		<description>Congratulations Kees! Keep up the great work!</description>
		<content:encoded><![CDATA[<p>Congratulations Kees! Keep up the great work!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

