[Pidgin] #11110: Pidgin appears to leak DNS for Jabber accounts

Pidgin trac at pidgin.im
Fri Apr 29 14:44:20 EDT 2011


#11110: Pidgin appears to leak DNS for Jabber accounts
-------------------------------------+--------------------------------------
 Reporter:  ioerror                  |        Owner:  deryni
     Type:  defect                   |       Status:  closed
Milestone:  2.8.0                    |    Component:  XMPP  
  Version:                           |   Resolution:  fixed 
 Keywords:  jabber security privacy  |  
-------------------------------------+--------------------------------------

Comment(by ioerror):

 Replying to [comment:51 datallah]:
 > I'm going to ignore the first few messages since my last reply, it looks
 to me like there was some confusion that was subsequently resolved - if
 there is something in those that is a real problem, please let me know.
 >

 Sure, sorry about the above confusion...

 > We can't (shouldn't) reverse the order of the entries in that enum -
 that would cause the value previously used for `ENVVAR` to change.  The
 order in the enum isn't at all correlated with the order of the items
 displayed in the GUI, the selection is determined by value, not by order.
 >

 Hrm. Does that actually matter? The proxy value will be written out to
 disk (in accounts.xml) as text after any proxy switch (once the callback
 is called). So the int value only matters at run time and is internal to
 pidgin, isn't it?

 I mean, I understand that the symbolic name should be enough but this does
 not appear to be the case.

 > I can't recreate the problem you're experiencing here - please make sure
 that you're using a clean build, particularly since your patching changed
 the ints for the proxy type enum.

 Ok - I can reproduce it locally - every time from a clean build. Until I
 re-order the enum, I always had a "Tor/Privacy" option with no fields to
 fill in and internally, it wrote 'envvar' to the 'accounts.xml' file.
 Similarly, the "Use Environmental Settings" selection gave me fields to
 fill in.

 I am using a clean build from http://erinn.org/~e/pidgin.tgz and I did the
 following:
 {{{
   wget http://erinn.org/~e/pidgin.tgz
   tar -xvzf pidgin.tgz
   cd pidgin-mtn
   ./autogen.sh
   ./configure --disable-screensaver --disable-gstreamer --disable-vv
 --disable-idn --disable-meanwhile --disable-dbus --disable-perl --disable-
 tcl --enable-gnutls=no --enable-nss=yes --disable-consoleui --enable-gcc-
 hardening --enable-linker-hardening
   time make
   sudo make install
   /usr/local/bin/pidgin
 }}}

 One thing worth noting is that the autogen.sh has an error in the last
 line where configure is run:
 {{{
 checking for XScreenSaverRegister in -lXext... no
 checking for XScreenSaverRegister in -lXss... no
 configure: error:
 XScreenSaver extension development headers not found.
 Use --disable-screensaver if you do not need XScreenSaver extension
 support,
 this is required for detecting idle time by mouse and keyboard usage.
 }}}

 This shouldn't matter as the next thing that I call is the correct
 configure line for my system. Does it?

 I have no other pidgin packages on my system. Previously, I used the
 pidgin packages that came with ubuntu (I removed pidgin pidgin-dev pidgin-
 libnotify pidgin-otr during this development cycle) and those are long
 gone.

 Here's my pristine pidgin:
 {{{
 % which pidgin
 /usr/local/bin/pidgin

 % ldd /usr/local/bin/pidgin
         linux-vdso.so.1 =>  (0x00007fffb81ff000)
         libSM.so.6 => /usr/lib/libSM.so.6 (0x00007f5828cb5000)
         libICE.so.6 => /usr/lib/libICE.so.6 (0x00007f5828a9a000)
         libgtkspell.so.0 => /usr/lib/libgtkspell.so.0 (0x00007f5828892000)
         libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007f5828542000)
         libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0
 (0x00007f5827f20000)
         libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0
 (0x00007f5827c72000)
         libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00007f5827a51000)
         libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007f582779e000)
         libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0
 (0x00007f5827573000)
         libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0
 (0x00007f5827357000)
         libm.so.6 => /lib/libm.so.6 (0x00007f58270d4000)
         libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0
 (0x00007f5826ec6000)
         libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007f5826c43000)
         libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0
 (0x00007f58269f9000)
         libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f5826772000)
         libfontconfig.so.1 => /usr/lib/libfontconfig.so.1
 (0x00007f582653d000)
         libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0
 (0x00007f58262f5000)
         libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0
 (0x00007f58260f0000)
         libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0
 (0x00007f5825eeb000)
         librt.so.1 => /lib/librt.so.1 (0x00007f5825ce3000)
         libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00007f5825a04000)
         libpurple.so.0 => /usr/local/lib/libpurple.so.0
 (0x00007f582573f000)
         libnsl.so.1 => /lib/libnsl.so.1 (0x00007f5825525000)
         libresolv.so.2 => /lib/libresolv.so.2 (0x00007f582530b000)
         libpthread.so.0 => /lib/libpthread.so.0 (0x00007f58250ee000)
         libc.so.6 => /lib/libc.so.6 (0x00007f5824d6b000)
         libuuid.so.1 => /lib/libuuid.so.1 (0x00007f5824b65000)
         libz.so.1 => /lib/libz.so.1 (0x00007f582494e000)
         libenchant.so.1 => /usr/lib/libenchant.so.1 (0x00007f5824743000)
         libdl.so.2 => /lib/libdl.so.2 (0x00007f582453e000)
         libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f582432c000)
         libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007f5824121000)
         libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007f5823f1e000)
         libXi.so.6 => /usr/lib/libXi.so.6 (0x00007f5823d0e000)
         libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00007f5823b05000)
         libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00007f58238fa000)
         libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f58235c4000)
         libXcomposite.so.1 => /usr/lib/libXcomposite.so.1
 (0x00007f58233c1000)
         libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007f58231bd000)
         libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007f5822fb7000)
         libpcre.so.3 => /lib/libpcre.so.3 (0x00007f5822d88000)
         libselinux.so.1 => /lib/libselinux.so.1 (0x00007f5822b6a000)
         libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007f5822910000)
         libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0
 (0x00007f582268d000)
         libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0
 (0x00007f5822483000)
         libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0
 (0x00007f5822269000)
         libpng12.so.0 => /lib/libpng12.so.0 (0x00007f5822042000)
         libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0
 (0x00007f5821e3e000)
         libxcb-render.so.0 => /usr/lib/libxcb-render.so.0
 (0x00007f5821c34000)
         libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f5821a18000)
         libexpat.so.1 => /lib/libexpat.so.1 (0x00007f58217ee000)
         /lib64/ld-linux-x86-64.so.2 (0x00007f5828ee2000)
         libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f58215e9000)
         libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f58213e3000)
 }}}

 Additionally, my /usr/local/* is empty before I install pidgin.

 > The proxy configuration settings in the GUI should (and do) appear in
 all cases except "No proxy" and "Use environmental settings".

 Not for me. I only have proper functionality when I re-order the enum -
 once I've done that, everything functions as expected.

 As an aside, when compiling a pristine copy (no patches at all), I see:
 {{{
   CC     privacy.lo
   CC     proxy.lo
 proxy.c:2404: warning: no previous prototype for
 ‘purple_proxy_connect_socks5’
   CC     prpl.lo
   CC     request.lo
   CC     roomlist.lo
   CC     savedstatuses.lo
   CC     server.lo
   CC     signals.lo
   CC     smiley.lo
   CC     dnsquery.lo
 dnsquery.c:923: warning: no previous prototype for ‘purple_dnsquery_a’
   CC     dnssrv.lo
 dnssrv.c:677: warning: no previous prototype for ‘purple_srv_resolve’
 dnssrv.c:817: warning: no previous prototype for ‘purple_txt_resolve’
   CC     status.lo
 }}}

-- 
Ticket URL: <http://developer.pidgin.im/ticket/11110#comment:52>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list