Hello!

Very good information in the bugreport. I've had a quick look at it
and here's my guess .... I'm probably totally wrong, and even if I'm right
the real fix is still unknown.

Both the valgrind run and the backtrace of the thread which gets the segfault 
contains run_sync_state_machine. In the backtrace there's also an assertion
failure visible!

"g_input_stream_clear_pending: assertion `G_IS_INPUT_STREAM (stream)' failed"

The backtrace says we're doing a g_input_stream_read and Valgrind complains
on line 450, which means res == -1.

Combining these clews I think g_input_stream_read was called with a
file->data_stream which for some reason is not a valid input stream,
the first thing g_input_stream_read does is return -1 if this assertion fails,
so io_error will still be NULL. On line 450 io_error is then dereferenced by
io_error->message. An ugly fix might be to check if io_error is NULL before
dereferencing it, but the real fix would be to figure out why the assertion
fails! (Why is file->data_stream not a valid stream?)

-- 
Andreas Henriksson



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to