Package: centerim-utf8
Version: 4.22.10-1
Severity: important
Tags: patch

When I sign in to MSN centerim often segfaults.
After looking into the issue it seems to be due to a missing field in a
response from the MSN server.

args[5] here from notificationserver.cpp line ~200 will be undefined since
the <vector> only has 5 entries:
this->myNotificationServer()->externalCallbacks.gotNewReverseListEntry(this, \
args[4], decodeURL(args[5]));

This is because the MSN server is sometimes sending:
ADD 0 RL 0 user.n...@example.com 

Instead of this:
ADD 0 RL 0 user.n...@example.com User%20Name

So my quick fix to this (without any knowledge on the MSN protocol) was to
copy user.n...@example.com to args[5] and that way avoiding the segfault.

I'm attaching an patch that shows how I solved my issue.

-- System Information:
Debian Release: 6.0.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-686 (SMP w/2 CPU cores)
Locale: LANG=sv_SE.UTF-8, LC_CTYPE=sv_SE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages centerim-utf8 depends on:
ii  centerim-common      4.22.10-1           A text-mode multi-protocol instant
ii  libc6                2.11.3-4            Embedded GNU C Library: Shared lib
ii  libcurl3-gnutls      7.21.0-2.1+squeeze2 Multi-protocol file transfer libra
ii  libgcc1              1:4.4.5-8           GCC support library
ii  libgnutls26          2.8.6-1+squeeze2    the GNU TLS library - runtime libr
ii  libgpg-error0        1.6-1               library for common error values an
ii  libgpgme11           1.2.0-1.2           GPGME - GnuPG Made Easy
ii  libncursesw5         5.7+20100313-5      shared libraries for terminal hand
ii  libstdc++6           4.4.5-8             The GNU Standard C++ Library v3

Versions of packages centerim-utf8 recommends:
ii  lynx-cur [www-browser]      2.8.8dev.5-1 Text-mode WWW Browser with NLS sup
pn  sox                         <none>       (no description available)
ii  w3m [www-browser]           0.5.2-9      WWW browsable pager with excellent

centerim-utf8 suggests no packages.

-- no debconf information
--- tmp/centerim-4.22.10/libmsn/msn/notificationserver.cpp      2010-10-26 
19:19:06.000000000 +0200
+++ centerim-4.22.10/libmsn/msn/notificationserver.cpp  2012-12-13 
23:13:09.000000000 +0100
@@ -191,9 +191,14 @@
     
     void NotificationServerConnection::handle_ADD(std::vector<std::string> & 
args)
     {
+       //std::cerr << "DEBUG handle_ADD size: " << args.size() << std::endl;
         this->assertConnectionStateIsAtLeast(NS_CONNECTED);        
         if (args[2] == "RL")
         {
+           if (args.size() == 5)
+           {
+               args.push_back(args[4]);
+           }
             
this->myNotificationServer()->externalCallbacks.gotNewReverseListEntry(this, 
args[4], decodeURL(args[5]));
         }
         else

Reply via email to