ftblog

:: widerstand zwecklos ::
email jabber gpgkey
hackergotchi

April 10, 2007

cmus AS, die Zweite

Filed under: computer -- 11:08

Andrew Fuller hat mich auf einen Bug im cmus Audioscrobbler Code aufmerksam
gemacht. Und natürlich hätte ich den Fehler verhindern können, wenn ich vorher
einfach mal mein Hirn eingeschaltet hätte. Es ist nämlich das selbe Problem,
welches ich schon einmal fixte: 'size_t' vs. 'ssize_t'. Nur hab ich das damals
an der Stelle gefixed, wo der Fehler bei _mir_ auftrat. Daß das selbe an einer
anderen Stelle auf die exakt gleiche Art und Weise passieren konnte, darüber
habe ich natürlich nicht nachgedacht. :-)

Also:

diff --git a/as.c b/as.c
index 3ec663c..99e24ca 100644
--- a/as.c
+++ b/as.c
@@ -125,7 +125,7 @@ static void as_handshake(void)
     int sockfd;
     unsigned long int idx, odx;
     char buf[AS_BUFSIZE+1];
- size_t n;
+ ssize_t n;
     string_t msg, tmp;

     /* no authentication values set, don't do anything */

So weit, so gut.
Nun hat Timo noch ein paar Änderungen im git HEAD vorgenommen, die ich schnell
in meine Branch reinpullen wollte. Allerdings tangieren mich diese Änderungen,
so daß der Patch nicht mehr sauber passt, und daß, wenn man die Unsauberkeiten
von Hand behebt, der Code nicht mehr kompiliert.

Zum Glück waren die benötigten Änderungen in zwei Minuten zu finden, sonst
hätte ich das hier wohl etwas weiter nach hinten verschoben.

% git clone git://onion.dynserv.net/git/cmus.git cmus
% cd cmus
% wget -O- -o/dev/null http://bewatermyfriend.org/media/cmus_audioscrobblerBETA2-githead.diff | patch -p1
% ./configure --whatever-options AND_VARIABLES=1
% make ; sudo make install

Patch diesesmal nur gegen git HEAD. Für das Release kann man den alten Plus
die beiden 'size_t' Patches nehmen. Ich würde aber das Clonen vom
git Repository und den neuen Patch empfehlen.

Das ganze ist nur eine Wartungsarbeit. Keine neuen Features und keine
Verbesserungen am Code sind dabei (abgesehen von dem Fix für das Signedness
Problem, welcher potentielle Abstürze verhüten kann).

Rinnjehaun!

Powered by zblog
valid css | valid xhtml | utf-8 encoded | best viewed with anybrowser