comments, twitter…

I recognized just a few hours ago, there were comments written, which needed to be approved…

Did so now and tried to respond to them – sorry for the delay and thanks a lot for your input/contributions!

As most people reading my blog do know already anyway and I no longer feel ashamed of using it…

My twitter username: foobarbablub – respectively the twitter page: http://twitter.com/foobarblablub

Polluting the twitter cloud with statements / impressions I don’t think they’re worth a whole blog post… most tweets are not related to technical / computer stuff by the way – used language is mostly English…

PHP – fooled me once again…

I was asked to take a look at several free and opensource software web-projects which are capable for so called “ISP configuration management”, managing web-, mail-, database-servers, etc. – handling clients, resellers and admins and having specialized frontends for them…

Anyway… I trigerred a weird bug in one of the projects where I got into an if-condition where I shouldn’t get into… which not just caused a weird behaviour of the application but was also a big security hole in this special case.

The code was something like that (simplified and not tested):


get_sql($value) {
   if ($ret = mysql_query ("SELECT * FROM `table` WHERE foo='%s'"),
       mysql_real_escape_string($value))
   {
     return $ret;
   }
   else
   {
     return false;
   }
}
<br />
$result = get_sql($foo);
if (count($result) &gt; 0) {
&nbsp;&nbsp; // privileged area...
}

Ugly code – anyway… how it was expected to behave by the author?
1) function get_sql() gets executed and therefore a sql-query
2) get_sql() returns an array of results
3) the number of results is checked via count($result) and when the result-array is greater than 0 jump into the if-block

Okay, so far so good…

However – I finally found out the SQL-query in get_sql() fails because of a typo.
No error was thrown in the above code – so what’s happening?
1) function get_sql() gets executed and therefore a sql-query
2) get_sql() returns the boolean false, because the sql-query failed
3) count($result), evaluated count(false) is called

As the software just did behave different and didn’t throw an error an intermediate result is:

count() applied on a boolean is valid !

So what’s count(false) going to return?

1! – the integer one!

count(false) is 1 and in PHP therefore true!

Proof:


$ php
&lt;? echo count(false); ?&gt;
1
$

Even better: this behaviour is kind of “documented” within an example at http://php.net/manual/en/function.count.php without any comment.

Okay, now guess:
What’s count(true) returning? And this is not documented!

1! – the integer one!

PHP – dine in hell…

some updates of what’s going on :)

Besides the ongoing work related to the Openmoko Freerunner <-> OpenWrt integration, I decided to focus on multimedia application ports for OpenWrt.

The Xbox Multimedia Center (xbmc -> http://www.xbmc.org), which I’m using (and lovin’) for several years on my Xbox now, was starting getting ported to Linux quite some time ago.
The port looks really promising, so I decided to start get it working within OpenWrt.

I already started porting some basic needed dependencies, including <(lib)boost> (http://www.boost.org), a apparently widely used c++ library set.
Because this project – ehrm – really resists all normal tries getting cross-compiled and staged (it does use an alternative to make called <bjam> which is better because of… – I really have no clue), I took a look how the OpenEmbedded-project got it done – and it helped! – technically as well as morally.

Besides giving me some hints how to workaround some of their (really weird) stuff, I “discovered” a comment in the middle of the file (http://cgit.openembedded.net/cgit.cgi?url=openembedded/tree/recipes/boost/boost.inc) which I like to quote:

[..]
80 # Oh yippee, a new build system, it’s sooo cooool I could eat my own
81 # foot. inlining=on lets the compiler choose, I think. At least this
82 # stuff is documented…
83 # NOTE: if you leave on then in a debug build the build sys
84 # objcopy will be invoked, and that won’t work. Building debug apparently
85 # requires hacking gcc-tools.jam
86 #
87 # Sometimes I wake up screaming. Famous figures are gathered in the nightmare,
88 # Steve Bourne, Larry Wall, the whole of the ANSI C committee. They’re just
89 # standing there, waiting, but the truely terrifying thing is what they carry
90 # in their hands. At first sight each seems to bear the same thing, but it is
91 # not so for the forms in their grasp are ever so slightly different one from
92 # the other. Each is twisted in some grotesque way from the other to make each
93 # an unspeakable perversion impossible to perceive without the onset of madness.
94 # True insanity awaits anyone who perceives all of these horrors together.
95 #
96 # Quotation marks, there might be an easier way to do this, but I can’t find
97 # it. The problem is that the user.hpp configuration file must receive a
98 # pre-processor macro defined as the appropriate string – complete with “‘s
99 # around it. (<> is a possibility here but the danger to that is that the
100 # failure case interprets the < and > as shell redirections, creating
101 # random files in the source tree.)
[..]

Reading this really made my day ­čÖé

Anyway – boost is ported and working on OpenWrt now, but that’s only the head of the list of dependencies for getting xbmc compiled and running –
any help here – packaging requirements for xbmc for OpenWrt – is highly appreciated!

nerds ‘r cookin’…

Still at fosdem, still hearing really good talks and still meeting nice people.

So right now just a little insight (how we’re surviving) ­čśë :

Lang ists herÔÇŽ

…seid dem letzte Post.

Doch das wird nachgeholt. Es haben sich mehrere Projekte angesammelt, welche ich in den n├Ąchsten Tagen vorstellen werde.

Derzeit bin ich im Pseudo-Abi-Stress – Anlass f├╝r diesen Post gab mir folgende SMS von o2 (ja, ich habe nun einen Vertrag – nein, nicht auf meinen Namen und nein, nicht auf den Namen von Eltern oder anderen Verwandten ;)):

“Sie haben das o2 Communication Center seit dem 1.1.1900 nicht mehr benutzt und der E-Mail Empfang wurde deaktiviert. Wenn Sie das o2 Communication Center bis zum 28.9.1900 nicht weiter nutzen wird Ihr Konto automatisch gel├Âscht.

Sind Sie mit dem Produkt nicht zufrieden oder haben Sie Verbesserungsvorschl├Ąge? Wir freuen uns auf Ihr Feedback unter http://www.o2online.de/goto/mc-feedback.”

1900 – JAWOLL!

Probesitzen

Dieses Bild soll einen Nachtrag zu einem derzeit nicht nicht vorhanden Beitrag ├╝ber die IFA darstellen:

Probesitzen

Langsam gehen die zu weit…

o2 – gehtÔÇÖs noch ?! (3)

Das mit dem Platzhalter unten war ‘ne doofe Idee.

Habe es nun endlich geschafft den Brief online zu stellen – hier ist er:

http://www.nanl.de/briefe/o2-2.pdf

Das war nur noch ein Trotzbrief quasi, da ich es ziemlich beschissen finde was die da abziehen.

Habe heute die Antwort erhalten – ein weiteres Mal: ohne Worte:

“Sehr geehrter Herr Vogt,

vielen Dank f├╝r Ihr Schreiben.

Wir haben Ihren Eintrag gepr├╝ft und sind zum Ergebnis gekommen, dass wir ihn nicht annehmen. Hierzu sind wir im Rahmen der Vertragsfreiheit berechtigt.

Wir bitten um Ihr Verst├Ąndnis.

Mit freundlichen Gr├╝├čen

Ihr Team von o2 Germany”

Musterung

Es ist jetzt 8:48.

Um 10:00 Uhr soll ich in der Oberspreestr. zur Musterung erscheinen.

W├╝nscht mir Gl├╝ck ­čśÉ

—-

Bin wieder zur├╝ck – das Tageziel ist erreicht: T5 !!!!

Ausf├╝hrlicher Report findet in ca. 2 Wochen statt – dann werden die ├╝ber mich gespeicherten Daten bei denen (laut denen) vernichtet.

Beschwerdebrief an Kaba

Mich hat mal wieder meine kreative Ader gepackt, als ich bei einem sehr guten Freund zum Fr├╝hst├╝ck eine Kaba-Milchpulver-Packung auf dem Tisch fand und mir den Comic auf der R├╝ckseite ansah…

Sehr geehrtes Kaba-Team,
Ich habe bereits Dutzende von Kaba-Produkten erworben, jedoch keines verhalf mir bisher
in den auf der R├╝ckseite jedes Kaba-Produktes beschriebenen Kaba-Strudel zu gelangen. Ich
habe s├Ąmtliche Geschmacksrichtungen durchprobiert und auch schon versucht das gesamte
Pulver einer Packung so zu essen. Danach wurde mir zwar schwindlig und schlecht, jedoch
sehe ich hier wenig Parallelen zum auf den Produkten beschriebenen Strudel.
Ich bin verzweifelt und wei├č wirklich nicht mehr weiter.
Ich bitte um eine schnellstm├Âgliche R├╝ckmeldung.
Mit freundlichen Gr├╝├čen
Mirko Vogt

Mal gucken was zur├╝ck kommt

o2 – gehtÔÇÖs noch ?! (2)

Ich habe soeben einen Brief im Briefkasten gefunden – die Absenderadresse war o2.

Ohne weitere Worte der Brief hier zitiert:

“Sehr geehrter Herr Vogt,

vielen Dank f├╝r Ihr Schreiben.

Wir haben Ihre Daten eingehend gepr├╝ft und m├╝ssen Ihnen leider mitteilen, dass wir gem├Ą├č unserer internen Gesch├Ąftskriterien Ihrem Auftrag leider nicht entsprechen k├Ânnen.

Bedauerlicherweise konnten wir uns nicht anders entscheiden. Bitten haben Sie hierf├╝r Verst├Ąndnis.

Mit freundlichen Gr├╝├čen

Ihr Team von o2 Germany”

ern├╝chternd

Next Page →