tieto / sipe

A third-party Pidgin plugin for Microsoft Lync/OCS - clone of upstream http://repo.or.cz/w/siplcs.git
GNU General Public License v2.0
129 stars 24 forks source link

Infinite loop when right-clicking link in chat window #111

Closed gy-lehel closed 5 years ago

gy-lehel commented 7 years ago
#0  0x00007f7377f51453 in g_type_check_instance_cast () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#1  0x00007f737abb1bbd in webkit_dom_node_get_parent_node () from /usr/lib/x86_64-linux-gnu/libwebkitgtk-3.0.so.0
No symbol table info available.
#2  0x00007f737d3f8abf in do_popup_menu (webview=webview@entry=0x55bf443cc680, button=3, time=14417764, context=6, node=0x55bf4474c640, 
    uri=0x55bf4473ac00 "http://egkep.com/index.cgi?lat=19.3734&long=47.4729&lat2=19.2772&long2=47.8083&lat3=19.2772&long3=47.8083&lat4=19.2772&long4=47.8083&lat5=19.2772&long5=47.8083&sub=", '+' <repeats 15 times>, "%C9gk%E9p+k%E9sz%EDt%"...) at gtkwebview.c:768
        proto = <optimized out>
        children = <optimized out>
        link_node = 0x55bf44238250
        menu = 0x55bf44205120
        cut = <optimized out>
        copy = <optimized out>
        paste = <optimized out>
        delete = <optimized out>
        select = <optimized out>
        show_clipboard = 1
        image_node = 0x0
#3  0x00007f737d3f97f5 in webview_button_pressed (webview=0x55bf443cc680, event=0x55bf4467cc20) at gtkwebview.c:987
        hit = 0x55bf43df4080
        context = 6
        node = 0x55bf4474c640
        uri = 0x55bf4473ac00 "http://egkep.com/index.cgi?lat=19.3734&long=47.4729&lat2=19.2772&long2=47.8083&lat3=19.2772&long3=47.8083&lat4=19.2772&long4=47.8083&lat5=19.2772&long5=47.8083&sub=", '+' <repeats 15 times>, "%C9gk%E9p+k%E9sz%EDt%"...
        event = 0x55bf4467cc20
        webview = 0x55bf443cc680
#4  0x00007f73792c6c4c in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#5  0x00007f7377f2f3b8 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#6  0x00007f7377f40d3d in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#7  0x00007f7377f486f9 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#8  0x00007f7377f48ce2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#9  0x00007f73793ef974 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#10 0x00007f73792c508c in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#11 0x00007f73792c691a in gtk_main_do_event () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#12 0x00007f7378ecac22 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
No symbol table info available.
#13 0x00007f737d082e04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#14 0x00007f737d083048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#15 0x00007f737d08330a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#16 0x00007f73792c5e25 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#17 0x00007f737d404c55 in pidgin_start (argc=1, argv=0x7fff97a965d8) at libpidgin.c:850
        opt_force_online = 0
        opt_help = <optimized out>
        opt_login = 0
        opt_nologin = 0
        opt_version = 0
        opt_si = 1
        opt_config_dir_arg = 0x0
        opt_login_arg = <optimized out>
        opt_session_arg = 0x0
        search_path = <optimized out>
        provider = <optimized out>
        screen = <optimized out>
        accounts = <optimized out>
---Type <return> to continue, or q <return> to quit---
        sig_indx = 1
        sigset = {__val = {82950, 0 <repeats 15 times>}}
        errmsg = "\000D\251\227\377\177\000\000\070[\201}s\177\000\000\320e\251\227\377\177\000\000@\003\000\000\000\000\000\000\177ELF\002\001\001\000\000\000\000\000\000\000\000\000\003\000>\000\001\000\000\000\240\t\000\000\000\000\000\000@\000\000\000\000\000\000\000pA\000\000\000\000\000\000\000\000\000\000@\000\070\000\a\000@\000\032\000\031\000\001\000\000\000\005", '\000' <repeats 27 times>, "\\0\000\000\000\000\000\000\\0\000\000\000\000\000\000\000\000 \000\000\000\000\000\001\000\000\000\006\000\000\000\350=\000\000\000\000\000\000\350= \000\000\000\000\000\350= \000\000\000\000\000\200\002\000\000\000\000\000\000\210\002\000\000\000\000\000\000\000\000"...
        signal_channel = <optimized out>
        signal_status = <optimized out>
        signal_channel_watcher = 1
        error = 0x55bf42f1ea70
        segfault_message_tmp = <optimized out>
        opt = <optimized out>
        gui_check = <optimized out>
        debug_enabled = <optimized out>
        debug_colored = <optimized out>
        active_accounts = <optimized out>
        st = {st_dev = 64513, st_ino = 131924, st_nlink = 2, st_mode = 16832, st_uid = 79260, st_gid = 12565, __pad0 = 0, st_rdev = 0, st_size = 4096, st_blksize = 4096, st_blocks = 8, st_atim = {tv_sec = 1445415107, tv_nsec = 279910880}, st_mtim = {tv_sec = 1445415107, 
            tv_nsec = 279910880}, st_ctim = {tv_sec = 1445415107, tv_nsec = 279910880}, __glibc_reserved = {0, 0, 0}}
        long_options = {{name = 0x7f737d41a3a8 "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x7f737d4079e8 "debug", has_arg = 2, flag = 0x0, val = 100}, {name = 0x7f737d41eaca "force-online", has_arg = 0, flag = 0x0, val = 102}, {name = 0x7f737d4095f6 "help", 
            has_arg = 0, flag = 0x0, val = 104}, {name = 0x7f737d41e9af "login", has_arg = 2, flag = 0x0, val = 108}, {name = 0x7f737d41ead7 "multiple", has_arg = 0, flag = 0x0, val = 109}, {name = 0x7f737d41eae0 "nologin", has_arg = 0, flag = 0x0, val = 110}, {
            name = 0x7f737d41a39e "session", has_arg = 1, flag = 0x0, val = 115}, {name = 0x7f737d40c60d "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x7f737d41a3b1 "display", has_arg = 1, flag = 0x0, val = 68}, {name = 0x7f737d416045 "sync", has_arg = 0, 
            flag = 0x0, val = 83}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
#18 0x00007f737ca78f45 in __libc_start_main (main=0x55bf423b9960 <main>, argc=1, argv=0x7fff97a965d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff97a965c8) at libc-start.c:287
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 3824972610186131332, 94279938316725, 140735737849296, 0, 0, -3825202052481534076, -3750388954251905148}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7fff97a965e8, 0x7f737d8691c8}, data = {prev = 0x0, 
              cleanup = 0x0, canceltype = -1750506008}}}
        not_first_call = <optimized out>
#19 0x000055bf423b99de in _start ()
No symbol table info available.
elehgyr@elxa99nmk32:~$ dpkg -l pidgin* *freerdp* remmin* *gstream* *farstrea* | grep ii
ii  gir1.2-gstreamer-1.0                                  1.2.4-0ubuntu1                                                    amd64        Description: GObject introspection data for the GStreamer library
ii  gstreamer0.10-alsa:amd64                              0.10.36-1.1ubuntu2                                                amd64        GStreamer plugin for ALSA
ii  gstreamer0.10-fluendo-mp3:amd64                       0.10.23.debian-3                                                  amd64        Fluendo mp3 decoder GStreamer 0.10 plugin
ii  gstreamer0.10-gconf:amd64                             0.10.31-3+nmu1ubuntu5                                             amd64        GStreamer plugin for getting the sink/source information from GConf
ii  gstreamer0.10-nice:amd64                              0.1.14~sipe-0+201606301047~ubuntu14.04.1                          amd64        ICE library (GStreamer 0.10 plugin)
ii  gstreamer0.10-plugins-bad:amd64                       0.10.23-7.2ubuntu1.1                                              amd64        GStreamer plugins from the "bad" set
ii  gstreamer0.10-plugins-bad-multiverse                  0.10.21-1ubuntu3                                                  amd64        GStreamer plugins from the "bad" set (Multiverse Variant)
ii  gstreamer0.10-plugins-base:amd64                      0.10.36-1.1ubuntu2                                                amd64        GStreamer plugins from the "base" set
ii  gstreamer0.10-plugins-base-apps                       0.10.36-1.1ubuntu2                                                amd64        GStreamer helper programs from the "base" set
ii  gstreamer0.10-plugins-good:amd64                      0.10.31-3+nmu1ubuntu5                                             amd64        GStreamer plugins from the "good" set
ii  gstreamer0.10-plugins-ugly:amd64                      0.10.19-2ubuntu5                                                  amd64        GStreamer plugins from the "ugly" set
ii  gstreamer0.10-pulseaudio:amd64                        0.10.31-3+nmu1ubuntu5                                             amd64        GStreamer plugin for PulseAudio
ii  gstreamer0.10-tools                                   0.10.36-1.2ubuntu3                                                amd64        Tools for use with GStreamer
ii  gstreamer0.10-x:amd64                                 0.10.36-1.1ubuntu2                                                amd64        GStreamer plugins for X11 and Pango
ii  gstreamer1.0-alsa:amd64                               1.2.4-1~ubuntu2                                                   amd64        GStreamer plugin for ALSA
ii  gstreamer1.0-clutter                                  2.0.8-1build1                                                     amd64        Clutter PLugin for GStreamer 1.0
ii  gstreamer1.0-fluendo-mp3:amd64                        0.10.23.debian-3                                                  amd64        Fluendo mp3 decoder GStreamer 1.0 plugin
ii  gstreamer1.0-libav:amd64                              1.2.4-1~ubuntu1                                                   amd64        libav plugin for GStreamer
ii  gstreamer1.0-nice:amd64                               0.1.4-1                                                           amd64        ICE library (GStreamer plugin)
ii  gstreamer1.0-plugins-bad:amd64                        1.2.4-1~ubuntu1                                                   amd64        GStreamer plugins from the "bad" set
ii  gstreamer1.0-plugins-bad-faad:amd64                   1.2.4-1~ubuntu1                                                   amd64        GStreamer faad plugin from the "bad" set
ii  gstreamer1.0-plugins-bad-videoparsers:amd64           1.2.4-1~ubuntu1                                                   amd64        GStreamer videoparsers plugin from the "bad" set
ii  gstreamer1.0-plugins-base:amd64                       1.2.4-1~ubuntu2                                                   amd64        GStreamer plugins from the "base" set
ii  gstreamer1.0-plugins-base-apps                        1.2.4-1~ubuntu2                                                   amd64        GStreamer helper programs from the "base" set
ii  gstreamer1.0-plugins-good:amd64                       1.2.4-1~ubuntu1                                                   amd64        GStreamer plugins from the "good" set
ii  gstreamer1.0-plugins-ugly:amd64                       1.2.3-2build1                                                     amd64        GStreamer plugins from the "ugly" set
ii  gstreamer1.0-pulseaudio:amd64                         1.2.4-1~ubuntu1                                                   amd64        GStreamer plugin for PulseAudio
ii  gstreamer1.0-tools                                    1.2.4-0ubuntu1                                                    amd64        Tools for use with GStreamer
ii  gstreamer1.0-x:amd64                                  1.2.4-1~ubuntu2                                                   amd64        GStreamer plugins for X11 and Pango
ii  gstreamer1.4-nice:amd64                               0.1.14~sipe-0+201606301047~ubuntu14.04.1                          amd64        ICE library (GStreamer plugin)
ii  gstreamer1.4-plugins-bad:amd64                        1.3.1+git20140513~1b5e514a-0.92+201409081716~ubuntu14.04.1        amd64        GStreamer plugins from the "bad" set
ii  gstreamer1.4-plugins-base:amd64                       1.3.1+git20140508~64d58b80-0.97+201405131039~ubuntu14.04.1        amd64        GStreamer plugins from the "base" set
ii  gstreamer1.4-plugins-good:amd64                       1.3.1+git20140512~de7e5e48-0.75+201512280039~ubuntu14.04.1        amd64        GStreamer plugins from the "good" set
ii  gstreamer1.4-pulseaudio:amd64                         1.3.1+git20140512~de7e5e48-0.75+201512280039~ubuntu14.04.1        amd64        GStreamer plugin for PulseAudio
ii  libfarstream-0.2-5-sipe:amd64                         0.2.8+sipe+collab-1+201606301048~ubuntu14.04.1                    amd64        Audio/Video communications framework: core library
ii  libfreerdp-client2:amd64                              2.0.0~git20160503.1.f828595+dfsg1-0~201605121048~ubuntu14.04.1    amd64        Free Remote Desktop Protocol library (client library)
ii  libfreerdp-server2:amd64                              2.0.0~git20160503.1.f828595+dfsg1-0~201605121048~ubuntu14.04.1    amd64        Free Remote Desktop Protocol library (server library)
ii  libfreerdp-shadow2:amd64                              2.0.0~git20160503.1.f828595+dfsg1-0~201605121048~ubuntu14.04.1    amd64        FreeRDP Remote Desktop Protocol shadow libraries
ii  libfreerdp1:amd64                                     1.0.2-2ubuntu1                                                    amd64        RDP client for Windows Terminal Services (library)
ii  libfreerdp2:amd64                                     2.0.0~git20160503.1.f828595+dfsg1-0~201605121048~ubuntu14.04.1    amd64        Free Remote Desktop Protocol library (core library)
ii  libgstreamer-perl                                     0.19-1                                                            amd64        Perl interface to the GStreamer media processing framework
ii  libgstreamer-plugins-bad0.10-0:amd64                  0.10.23-7.2ubuntu1.1                                              amd64        GStreamer shared libraries from the "bad" set
ii  libgstreamer-plugins-bad1.0-0:amd64                   1.2.4-1~ubuntu1                                                   amd64        GStreamer development files for libraries from the "bad" set
ii  libgstreamer-plugins-bad1.4-0:amd64                   1.3.1+git20140513~1b5e514a-0.92+201409081716~ubuntu14.04.1        amd64        GStreamer development files for libraries from the "bad" set
ii  libgstreamer-plugins-base0.10-0:amd64                 0.10.36-1.1ubuntu2                                                amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-base0.10-0:i386                  0.10.36-1.1ubuntu2                                                i386         GStreamer libraries from the "base" set
ii  libgstreamer-plugins-base1.0-0:amd64                  1.2.4-1~ubuntu2                                                   amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-base1.4-0:amd64                  1.3.1+git20140508~64d58b80-0.97+201405131039~ubuntu14.04.1        amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-good1.0-0:amd64                  1.2.4-1~ubuntu1                                                   amd64        GStreamer development files for libraries from the "good" set
ii  libgstreamer0.10-0:amd64                              0.10.36-1.2ubuntu3                                                amd64        Core GStreamer libraries and elements
ii  libgstreamer0.10-0:i386                               0.10.36-1.2ubuntu3                                                i386         Core GStreamer libraries and elements
ii  libgstreamer1.0-0:amd64                               1.2.4-0ubuntu1                                                    amd64        Core GStreamer libraries and elements
ii  libgstreamer1.4-0:amd64                               1.4~really1.3.1-0.11+201405201926~ubuntu14.04.1                   amd64        Core GStreamer libraries and elements
ii  libreoffice-avmedia-backend-gstreamer                 1:5.1.2~rc2-0ubuntu1~trusty0                                      amd64        GStreamer backend for LibreOffice
ii  phonon-backend-gstreamer:amd64                        4:4.7.80-0ubuntu2~ubuntu14.04                                     amd64        Phonon GStreamer 1.0.x backend
ii  phonon-backend-gstreamer-common:amd64                 4:4.7.80-0ubuntu2~ubuntu14.04                                     amd64        Phonon GStreamer 1.0.x backend icons
ii  phonon-backend-gstreamer1.0                           4:4.7.80-0ubuntu2~ubuntu14.04                                     all          transitional package
ii  pidgin                                                1:3.0.0~collab-1+201607290827~ubuntu14.04.1                       amd64        graphical multi-protocol instant messaging client
ii  pidgin-data                                           1:3.0.0~collab-1+201607290827~ubuntu14.04.1                       all          multi-protocol instant messaging client - data files
ii  pidgin-dbg                                            1:3.0.0~collab-1+201607290827~ubuntu14.04.1                       amd64        Debugging symbols for Pidgin
ii  pidgin-gnome-keyring                                  2.0~trusty-1                                                      amd64        integrates pidgin (and libpurple) with the system keyring
ii  pidgin-otr                                            4.0.0-2                                                           amd64        Off-the-Record Messaging plugin for Pidgin
ii  pidgin-sipe                                           1.21.1+sipe-0+201608031210~ubuntu14.04.1                          amd64        Pidgin plugin for MS Office Communicator and MS Lync
ii  pidgin-sipe-dbg                                       1.21.1+sipe-0+201608031210~ubuntu14.04.1                          amd64        Pidgin plugin for MS Office Communicator and MS Lync (debug symbols)
ii  remmina                                               1.2.0~rcgit+sipe-0+201608100847~ubuntu14.04.1                     amd64        remote desktop client for GNOME desktop environment
ii  remmina-common                                        1.2.0~rcgit+sipe-0+201608100847~ubuntu14.04.1                     all          common files for remmina remote desktop client
ii  remmina-plugin-rdp                                    1.2.0~rcgit+sipe-0+201608100847~ubuntu14.04.1                     amd64        RDP plugin for remmina remote desktop client
ii  remmina-plugin-vnc                                    1.2.0~rcgit+sipe-0+201608100847~ubuntu14.04.1                     amd64        VNC plugin for remmina remote desktop client
natanojl commented 5 years ago

It seems quite obvious that it's a bug in Pidgin: https://bitbucket.org/pidgin/main/src/0b7a0190d83db173f80755c2d6267b0811cc07eb/pidgin/gtkwebview.c?at=default&fileviewer=file-view-default#gtkwebview.c-766.

That line should be link_node = webkit_dom_node_get_parent_node(link_node);

This was introduced in https://bitbucket.org/pidgin/main/commits/247f6f06531ffc0d44bcb343b92d7640de42fce9.

natanojl commented 5 years ago

The fix was merged upstream in https://bitbucket.org/pidgin/main/commits/c23dfca4eb405d240988a16f8a949ac7f51a6a88.

gy-lehel commented 5 years ago

Would it be possible to publish a build with this fix in the ppa? Last build seem to have been done in june.

xhaakon commented 5 years ago

@gy-lehel Would upgrading to Ubuntu 18.04 be an option for you? sipe-collab PPA for 18.04 uses Pidgin 2.12 from the official Ubuntu repository, which doesn't have this bug.

I certainly can update the Pidgin 3 package, just want to make sure maintaining the legacy PPAs (for anything older than 18.04) is worth the while.

gy-lehel commented 5 years ago

Hi

Unfortunately the update for bionic is not possible, because the OS is maintained by the company, and it will take some more time to integrate the new major release (and even after that a lot of colleagues will be loath to switch version). Looking at the commit, it seems, that the patch is already available in main branch, which is the dev for version 3, or am I mistaken?

BR Lehel

xhaakon commented 5 years ago

We were discussing how to proceed with pidgin-sipe in Ubuntu 16.04. The conclusion is that the company still needs to support 16.04, but we see Pidgin 3 as a dead end and don't want to maintain two largely dissimilar versions of Pidgin in 16.04 and 18.04 PPAs.

So the decision has been made to replace Pidgin 3 in 16.04 PPA with Pidgin 2.12.0, the same version Ubuntu 18.04 official repository has. This should make the maintenance of sipe-collab packages easier in the future. The change will happen by the end of 2018.

Looking at the commit, it seems, that the patch is already available in main branch, which is the dev for version 3, or am I mistaken?

You are right, pulling new changes from Pidgin dev would fix this particular issue, but wouldn't ease the burden of maintaining two Pidgin versions we now have. If we want to support both Ubuntu releases in long term, it's desirable to keep the versions of packages in both PPAs as close to each other as possible, if only because of easier distribution of bug fixes.

gy-lehel commented 5 years ago

That sounds like a solution.

xhaakon commented 5 years ago

So I've finished the switch in 16.04 PPA, which now contains 2.12.0 Pidgin package from official Ubuntu 18.04 repository (rebuilt without any modifications).

Before downgrading to Pidgin 2.12, Pidgin 3.0 packages have to be removed from the system:

sudo apt-get remove pidgin pidgin-data libpurple0

When asked, confirm removal of packages that depend on the three listed above - among them will be pidgin-sipe and all pidgin -dev and -dbg packages if you have them installed. Then you are ready to reinstall Pidgin 2 from the PPA:

 apt-get update
 apt-get install pidgin pidgin-sipe

And finally you may want to do a regular apt-get upgrade to get the latest libnice and Farstream, which I've also updated in the PPA.

xhaakon commented 5 years ago

Pidgin 2.12 migration has been finished. Closing this ticket.