[sylpheed:36310] Re: [ANNOUNCE] Sylpheed 3.4.3 released

Hiroyuki Yamamoto hiro-y at kcn.ne.jp
Tue Jul 7 12:15:51 JST 2015


Hello,

On Mon, 06 Jul 2015 22:10:23 +0200
Gisle Vanem <gvanem at yahoo.no> wrote:

> Hiroyuki Yamamoto wrote:
> 
> > All users are recommended to upgrade.
> >
> >    * The bug that wrote the first part of data if the message body in
> >      the IMAP4 responses didn't end with CR+LF was fixed (#84).
> >    * The crash when displaying HTML messages was fixed (#215).
> >    * Win32: the crash when linked with newer MSVCRT was fixed.
> 
> Not quite it seems. Pressing the 'Help | Update check of plug-ins' menu,
> triggered this:
> 
>    ucrtbase!_invoke_watson+0x12
>    ucrtbase!_invalid_parameter+0xb1
>    ucrtbase!_invalid_parameter_noinfo+0xb
>    ucrtbase!_read+0x116
>    sylpheed!update_check_plugin_cb(void * pid = 0x0000022c, int status = 0n0, void * data = 0x00000001)+0x7e
>    libglib_2_0_0!g_list_sort_with_data+0xca
> 
> Since this new CRT calls 'read(child_stdout,..)' and 'child_stdout' is
> set in an older CRT (used by Glib). Hence Mr Watson is invoked.

Thanks for pointing it out.
update_check_cb() (Help - Update check) also seems to have the same problem.
(I have also noticed that fd_close() should not be used on Windows there)

> Is there no 'g_read()' that can be used instead?

In GLib, it seems that GIOChannel should be used.
The following code will probably work on both Unix/Linux and Windows.

	GIOChannel *ch;
	gchar *str;
	gsize size;
	ch = g_io_channel_unix_new(child_stdout);
	g_io_channel_read_to_end(ch, &str, &size, NULL);

-- 
Hiroyuki Yamamoto <hiro-y at kcn.ne.jp>


More information about the Sylpheed mailing list