Activity log for bug #541548

Date Who What changed Old value New value Message
2010-03-18 22:07:24 Razzloss bug added bug
2010-03-18 22:11:46 Razzloss attachment added hub http://launchpadlibrarian.net/41256512/hub.py
2010-03-18 22:14:36 Razzloss bug task added dcplusplus
2010-03-18 22:26:14 Razzloss description Seen at least on one hub out in the wild, which terminated actions/emotes in chat with \0 instead of proper |. E.g. Hub commands sent with '+me is going to lose his mind with this' were sent out by hub as * razzloss is going to his mind with this\0 The ClientListener Status message fired from this then contained this line and the next commands send by the hub until valid termination character was found. Windows clients apparently behaved as everything went fine (since no-one hadn't bothered to fix the problem and they saw the messages). So I'd imagine Windows chat messages are strcpy'd at some point, so that they end at correct place (and won't output the following commands to chat). LinuxDC++ on the otherhand passes the length of the string from the fired StatusMessage to gtk_text_buffer_insert, which then spews bunch of utf8 validation errors to console and doesn't actually add anything to the chat. After this nick tags are applied by LinuxDC++ so random text on the previous line gets italicized. So how do we fix this? At minimum the italicizing should be corrected, but should some validation be added to dcpp, so that messages like this won't get up to the GUI level? Quick fix which will show the emote line correctly is to change the len parameter passed to gtk_text_buffer_insert to -1, so that it will use only the null terminated part of the message. Seen at least on one hub out in the wild, which terminated actions/emotes in chat with \0 instead of proper |. E.g. Hub commands sent with '+me is going to lose his mind with this' were sent out by hub as * razzloss is going to his mind with this\0 The ClientListener Status message fired from this then contained this line and the next commands send by the hub until valid termination character was found. Windows clients apparently behaved as everything went fine (since no-one hadn't bothered to fix the problem and they saw the messages). So I'd imagine Windows chat messages are strcpy'd at some point, so that they end at correct place (and won't output the following commands to chat). LinuxDC++ on the otherhand passes the length of the string from the fired StatusMessage to gtk_text_buffer_insert, which then spews bunch of utf8 validation errors to console and doesn't actually add anything to the chat. After this nick tags are applied by LinuxDC++ so random text on the previous line gets italicized. So how do we fix this? At minimum the italicizing should be corrected, but should some validation be added to dcpp, so that messages like this won't get up to the GUI level? Quick fix which will show the emote line correctly is to change the len parameter passed to gtk_text_buffer_insert to -1, so that it will use only the null terminated part of the message. edit: DC++ core version used was 0.75 (also happened with released linuxdcpp with 0.698 core)
2010-03-22 16:03:31 Launchpad Janitor branch linked lp:linuxdcpp
2010-03-22 16:11:30 Razzloss linuxdcpp: status Confirmed Fix Committed
2010-03-22 16:11:30 Razzloss linuxdcpp: milestone 1.1.0
2010-03-22 16:11:30 Razzloss linuxdcpp: assignee Razzloss (razzloss)
2011-04-17 21:12:26 Steven Sheehy tags core gui hub core hub ui
2011-04-17 21:12:54 Steven Sheehy dcplusplus: status New Won't Fix
2011-04-17 21:12:56 Steven Sheehy linuxdcpp: status Fix Committed Fix Released