pidgin/pidgin

44c107f92a65
Always ref result of g_io_stream_get_{input,output}_stream.

Sometimes we wrap those in other streams, sometimes not. This makes prpls inconsistent with each other on whether they unref their `GInputStream`/`GOutputStream` in prpl data during shutdown. Thus, ref it when it's not wrapped, so we can _always_ do an unref in the cleanup.

This fixes a read-after-free Jabber shutdown, and presumably one in Novell, since it appears to do the same thing.

Testing Done:
Ran with valgrind and see no invalid reads in jabber shutdown. Novell was not tested, but seems similar.

Reviewed at https://reviews.imfreedom.org/r/558/
subdir('disco')
subdir('gestures')
subdir('xmppconsole')
if PLUGINS
gtkbuddynote = library('gtkbuddynote', 'gtkbuddynote.c',
dependencies : [libpurple_dep, libpidgin_dep, glib],
name_prefix : '',
install : true, install_dir : PIDGIN_PLUGINDIR)
iconaway = library('iconaway', 'iconaway.c',
dependencies : [libpurple_dep, libpidgin_dep, glib],
name_prefix : '',
install : true, install_dir : PIDGIN_PLUGINDIR)
notify = library('notify', 'notify.c',
dependencies : [libpurple_dep, libpidgin_dep, glib],
name_prefix : '',
build_by_default: false,
install : false, install_dir : PIDGIN_PLUGINDIR)
relnot = library('relnot', 'relnot.c',
dependencies : [libpurple_dep, libpidgin_dep, libsoup, glib],
name_prefix : '',
install : true, install_dir : PIDGIN_PLUGINDIR)
spellchk = library('spellchk', 'spellchk.c',
dependencies : [libpurple_dep, libpidgin_dep, glib],
name_prefix : '',
build_by_default: false,
install : false, install_dir : PIDGIN_PLUGINDIR)
if IS_WIN32
transparency = library('transparency', 'transparency.c',
dependencies : [libpurple_dep, libpidgin_dep, glib],
name_prefix : '',
build_by_default : false,
install : false, install_dir : PIDGIN_PLUGINDIR)
endif
if enable_unity
unity = library('unity', 'unity.c',
dependencies : [UNITY, libpurple_dep, libpidgin_dep, glib],
name_prefix : '',
install : true, install_dir : PIDGIN_PLUGINDIR)
endif
endif # PLUGINS