← Back to team overview

desktop-packages team mailing list archive

[Bug 886576] Re: pidgin crashes upon attempts to receive video calls over XMPP

 

Thanks for reporting this bug and helping make Ubuntu better. Sorry we
don't always have the resources to get to every bug report. Ubuntu 10.04
is no longer supported so I'm going to close the bug.

** Changed in: pidgin (Ubuntu)
       Status: New => Fix Released

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to pidgin in Ubuntu.
https://bugs.launchpad.net/bugs/886576

Title:
  pidgin crashes upon attempts to receive video calls over XMPP

Status in pidgin package in Ubuntu:
  Fix Released

Bug description:
  Description:	Ubuntu 10.04.3 LTS
  Release:	10.04

  pidgin:
    Installed: 1:2.6.6-1ubuntu4.3
    Candidate: 1:2.6.6-1ubuntu4.3
    Version table:
   *** 1:2.6.6-1ubuntu4.3 0
          500 http://us.archive.ubuntu.com/ubuntu/ lucid-updates/main Packages
          100 /var/lib/dpkg/status
       1:2.6.6-1ubuntu4.1 0
          500 http://security.ubuntu.com/ubuntu/ lucid-security/main Packages
       1:2.6.6-1ubuntu4 0
          500 http://us.archive.ubuntu.com/ubuntu/ lucid/main Packages

  pidgin crashes upon attempts to receive video calls over XMPP - If
  video calls fail, or are not supported, pidgin should report an error
  - it should *not* crash.

  This bug was found in pidgin 2.6.6 under Ubuntu 10.04 (Lucid Lynx), an
  LTS release.  I confirm that the bug is fixed in pidgin 2.10.0  I do
  not know exactly when this bug was fixed, but it is in fact fixed in
  later pidgin releases... Ubuntu should please upgrade the pidgin
  version in the 10.04 LTS release.  I, personally, will simply upgrade
  my copy of pidgin.

  I consider this a security vulnerability, because it causes the pidgin
  process to terminate.  On my system, some other services depend on
  pidgin to run.  A malicious user can destroy the function of *my*
  server by taking advantage of this bug.

  It's very easy to reproduce:  Log into a gtalk account in pidgin via
  XMPP.  Log into a different gtalk account via gmail's www interface.
  From the www interface, attempt a video call to the other gtalk
  account logged into pidgin.  (www is the caller, pidgin is the
  receiver)

  Here is a backtrace of the issue occurring.

  GNU gdb (GDB) 7.1-ubuntu
  Copyright (C) 2010 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
  and "show warranty" for details.
  This GDB was configured as "x86_64-linux-gnu".
  For bug reporting instructions, please see:
  <http://www.gnu.org/software/gdb/bugs/>...
  Reading symbols from /usr/bin/pidgin...Reading symbols from /usr/lib/debug/usr/bin/pidgin...done.
  done.
  (gdb) handle SIGPIPE nostop noprint
  Signal        Stop	Print	Pass to program	Description
  SIGPIPE       No	No	Yes		Broken pipe
  (gdb) run
  Starting program: /usr/bin/pidgin
  [Thread debugging using libthread_db enabled]
  Xlib:  extension "RANDR" missing on display ":0.0".
  [New Thread 0x7fffe038d700 (LWP 24171)]

  Program received signal SIGSEGV, Segmentation fault.
  0x00007fffdedacad4 in jingle_transport_parse (transport=0x16beba0)
      at /build/buildd/pidgin-2.6.6/./libpurple/protocols/jabber/jingle/transport.c:169
  169	/build/buildd/pidgin-2.6.6/./libpurple/protocols/jabber/jingle/transport.c: No such file or directory.
   in /build/buildd/pidgin-2.6.6/./libpurple/protocols/jabber/jingle/transport.c
  (gdb) bt full
  #0  0x00007fffdedacad4 in jingle_transport_parse (transport=0x16beba0)
      at /build/buildd/pidgin-2.6.6/./libpurple/protocols/jabber/jingle/transport.c:169
          type = 0x16e80c0 "http://www.google.com/transport/p2p";
  #1  0x00007fffdeda794b in jingle_content_parse_internal (content=0x16753f0)
      at /build/buildd/pidgin-2.6.6/./libpurple/protocols/jabber/jingle/content.c:386
          description = <value optimized out>
          type = 0x14bd170 "urn:xmpp:jingle:apps:rtp:1"
          creator = 0x16e9870 "initiator"
          disposition = 0x0
          senders = 0x0
          name = 0x16e97b0 "video"
          transport = <value optimized out>
  #2  0x00007fffdedaa9b3 in jingle_rtp_parse_internal (rtp=0x16beba0)
      at /build/buildd/pidgin-2.6.6/./libpurple/protocols/jabber/jingle/rtp.c:675
          content = <value optimized out>
          description = <value optimized out>
          media_type = <value optimized out>
          ssrc = <value optimized out>
  #3  0x00007fffdeda6bd3 in jingle_handle_session_initiate (session=0x14f2060,
      jingle=0x8a05a0)
      at /build/buildd/pidgin-2.6.6/./libpurple/protocols/jabber/jingle/jingle.c:227
          parsed_content = 0x0
          content = <value optimized out>
  #4  0x00007fffdeda61f8 in jabber_process_packet (js=0x14fd730,
      packet=<value optimized out>)
      at /build/buildd/pidgin-2.6.6/./libpurple/protocols/jabber/jabber.c:269
          xmlns = <value optimized out>
  #5  0x00007fffdedb0d57 in jabber_parser_element_end_libxml (
      user_data=0x16beba0, element_name=<value optimized out>, prefix=0x0,
      namespace=0x7ffff7fbe7e0 "\340\347\373\367\377\177")
      at /build/buildd/pidgin-2.6.6/./libpurple/protocols/jabber/parser.c:142
          packet = 0x0
  #6  0x00007ffff4077de3 in xmlParseEndTag2 (ctxt=0x14d4a20, prefix=0x0,
      URI=0x14d8ca7 "jabber:client", line=0, nsNr=0, tlen=<value optimized out>)
      at parser.c:9216
          name = 0x1 <Address 0x1 out of bounds>
  #7  0x00007ffff4084529 in xmlParseTryOrFinish (ctxt=0x14d4a20, terminate=0)
      at parser.c:11018
          ret = 0
          avail = 5
          tlen = 9
          cur = <value optimized out>
          next = <value optimized out>
          lastlt = 0x14d6a03 "</iq>"
          lastgt = 0x14d6a07 ">"
  #8  0x00007ffff4085c8c in xmlParseChunk__internal_alias (ctxt=0x14d4a20,
      chunk=0x7fffdefd0c40 "http://www.google.com/session/phone\"/><pho:payload-type id=\"8\" name=\"PCMA\" bitrate=\"64000\" clockrate=\"8000\" xmlns:pho=\"http://www.google.com/session/phone\"/><pho:payload-type id=\"117\" name=\"red\" clock"..., size=788, terminate=0) at parser.c:11602
          end_in_lf = 0
          remain = 0
  #9  0x00007fffdedb0afd in jabber_parser_process (js=0x14fd730, buf=0x0, len=0)
      at /build/buildd/pidgin-2.6.6/./libpurple/protocols/jabber/parser.c:252
          ret = <value optimized out>
  #10 0x00007fffdeda53a2 in jabber_recv_cb_ssl (data=0x14fc900, gsc=0xbb8600,
      cond=<value optimized out>)
      at /build/buildd/pidgin-2.6.6/./libpurple/protocols/jabber/jabber.c:551
          js = 0x14fd730
          len = 788
          buf = "http://www.google.com/session/phone\"/><pho:payload-type id=\"8\" name=\"PCMA\" bitrate=\"64000\" clockrate=\"8000\" xmlns:pho=\"http://www.google.com/session/phone\"/><pho:payload-type id=\"117\" name=\"red\" clock"...
  #11 0x000000000046ea9e in pidgin_io_invoke (source=<value optimized out>,
      condition=<value optimized out>, data=<value optimized out>)
      at /build/buildd/pidgin-2.6.6/./pidgin/gtkeventloop.c:78
          closure = 0xbffbb0
          purple_cond = PURPLE_INPUT_READ
  #12 0x00007ffff4e728c2 in g_main_dispatch (context=0x6f7450)
      at /build/buildd/glib2.0-2.24.1/glib/gmain.c:1960
          dispatch = 0x7ffff4eb4e10 <g_io_unix_dispatch>
          user_data = 0xbffbb0
          callback = 0x46ea60 <pidgin_io_invoke>
          cb_funcs = 0x7ffff5110610
          cb_data = 0x14feea0
          current_source_link = {data = 0x14d5180, next = 0x0}
          source = 0x14d5180
          current = 0xdfa8b0
          i = 0
  #13 IA__g_main_context_dispatch (context=0x6f7450)
      at /build/buildd/glib2.0-2.24.1/glib/gmain.c:2513
  No locals.
  #14 0x00007ffff4e76748 in g_main_context_iterate (context=0x6f7450,
      block=<value optimized out>, dispatch=<value optimized out>,
      self=<value optimized out>)
      at /build/buildd/glib2.0-2.24.1/glib/gmain.c:2591
          max_priority = 2147483647
          timeout = 774
          some_ready = 1
          nfds = 15
          allocated_nfds = -186108336
          fds = <value optimized out>
          __PRETTY_FUNCTION__ = "g_main_context_iterate"
  #15 0x00007ffff4e76c55 in IA__g_main_loop_run (loop=0x14fde10)
      at /build/buildd/glib2.0-2.24.1/glib/gmain.c:2799
          self = 0x6ee010
          __PRETTY_FUNCTION__ = "IA__g_main_loop_run"
  #16 0x00007ffff6251bb7 in IA__gtk_main ()
      at /build/buildd/gtk+2.0-2.20.1/gtk/gtkmain.c:1219
          tmp_list = 0x714ea0
          functions = 0x0
          init = 0x0
          loop = <value optimized out>
  #17 0x000000000048675f in main (argc=1, argv=0x7fffffffe288)
      at /build/buildd/pidgin-2.6.6/./pidgin/gtkmain.c:977
          opt_force_online = 0
          opt_help = <value optimized out>
          opt_login = 0
          opt_nologin = 0
          opt_version = -16040
          opt_si = 1
          opt_config_dir_arg = <value optimized out>
          opt_login_arg = 0x0
          opt_session_arg = 0x0
          accounts = <value optimized out>
          sigset = {__val = {81927, 0 <repeats 15 times>}}
          prev_sig_disp = <value optimized out>
          errmsg = "\005\000\000\000\000\000\000\000\244\355\061\365\377\177\000\000\360\302\377\377\377\177\000\000\"\232\336\367\377\177\000\000\000\000\000\000\000\000\000\000\206\271\336\367\377\177\000\000\270\337\377\367\377\177\000\000(\340\377\377\377\177\000\000\060\340\377\377\377\177\000\000h_1\365\377\177\000\000ت\374\367\377\177\000\000\002\242\336\367\377\177\000\000\200\251\377\367\377\177\000\000\270\064\375\367\377\177\000\000\330D\375\367\377\177\000\000x\245\374\367\377\177\000\000\000\060\375\367\377\177\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\244\355\061\365\377\177\000\000\360\302\377\377\377\177\000\000\000\000 \203\377\377\377\377\000\000\326r\275\357\377\377\250Y\375\367\377\177\000\000\004\000\000\000\000\000\000\000\227\355\061\365\377\177\000\000\360\302\377\377\377\177\000\000\000\000\200\203\377\377\377\377\000\000\326r\275\357\377\377\000` \000\000\000\000\000\270P \000\000\000\000\000\350P \000\000\000\000\000\000@\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\020 \000\000\000\000\000\000\060 \000\000\000\000\000h  \000\000\000\000\000\000\340\377\377\377\177\000\000p\340\377\377\377\177\000\000\310T\375\367\377\177"...
          signal_channel = <value optimized out>
          signal_status = <value optimized out>
          error = 0x0
          opt = <value optimized out>
          gui_check = <value optimized out>
          debug_enabled = 0
          migration_failed = <value optimized out>
          active_accounts = <value optimized out>
          long_options = {{name = 0x4d30c2 "config", has_arg = 1, flag = 0x0,
              val = 99}, {name = 0x4be354 "debug", has_arg = 0, flag = 0x0,
              val = 100}, {name = 0x4ce63b "force-online", has_arg = 0,
              flag = 0x0, val = 100}, {name = 0x4c1744 "help", has_arg = 0,
              flag = 0x0, val = 104}, {name = 0x4ce405 "login", has_arg = 2,
              flag = 0x0, val = 108}, {name = 0x4ce648 "multiple", has_arg = 0,
              flag = 0x0, val = 109}, {name = 0x4ce651 "nologin", has_arg = 0,
              flag = 0x0, val = 110}, {name = 0x4d30b8 "session", has_arg = 1,
              flag = 0x0, val = 115}, {name = 0x4c4b43 "version", has_arg = 0,
              flag = 0x0, val = 118}, {name = 0x4d30cb "display", has_arg = 1,
              flag = 0x0, val = 68}, {name = 0x4ce659 "sync", has_arg = 0,
              flag = 0x0, val = 83}, {name = 0x0, has_arg = 0, flag = 0x0,
              val = 0}}
  (gdb) quit
  A debugging session is active.

   Inferior 1 [process 24168] will be killed.

  Quit anyway? (y or n)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pidgin/+bug/886576/+subscriptions