Le 11.08.2007, à 01:52:12, Erich Schubert a écrit:
> Hi,

Hello,

> Archived packages of gmime2.0 version 2.2.9 can be found at
> http://snapshot.debian.net/archive/2007/07/22/debian/pool/main/g/gmime2.2/
> 
> Maybe the bug can be reproduced in a debug build when it is compiled
> with the -dev package in version 2.2.9 and then run with 2.2.10?

I tried that. I installed libgmime-2.0-2_2.2.9-1_i386.deb and
libgmime-2.0-2-dev_2.2.9-1_i386.deb and rebuilt mail-notification.

But I can't reproduce the crash when I execute mail-notification.

I then upgraded libgmime to 2.2.10 and I have the crash. The good news
is that I have a mail-notification compiled with debug so I can use gdb.

$ gdb ./mail-notification 
[...]
Failed to read a valid object file image from memory.
[Thread debugging using libthread_db enabled]
[New Thread -1226266960 (LWP 5644)]

(mail-notification:5644): GLib-GObject-WARNING **: specified instance size for 
type `MNGMimeStreamVFS' is smaller than the parent type's `GMimeStream' 
instance size

(mail-notification:5644): GLib-GObject-WARNING **: cannot retrieve class for 
invalid (unclassed) type `<invalid>'
[New Thread -1229612144 (LWP 5649)]

(mail-notification:5644): GLib-GObject-WARNING **: specified instance size for 
type `MNGMimeStreamVFS' is smaller than the parent type's `GMimeStream' 
instance size

(mail-notification:5644): GLib-GObject-CRITICAL **: g_object_new: assertion 
`G_TYPE_IS_OBJECT (object_type)' failed

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1229612144 (LWP 5649)]
0x0808b0b0 in mn_gmime_stream_vfs_new (handle=0xb6202d20, uri=0xb6206070, 
    result=0xb6b591e4) at mn-gmime-stream-vfs.gob:266
266             selfp->handle = handle;
(gdb) p selfp
No symbol "selfp" in current context.
(gdb) p self
$1 = (Self *) 0x0

selfp is a macro defined as #define selfp (self->_priv)
So dereferencing a NULL pointer is not a good idea.

The previous line in mn-gmime-stream-vfs.gob is:
  self = GET_NEW;
and GET_NEW is (I am using a Maildir mailbox format):
#define GET_NEW ((MNMaildirMailboxBackend 
*)g_object_new(mn_maildir_mailbox_backend_get_type(), NULL))

So the g_object_new() fails, return NULL and mail-notification crashes.

> P.S. if you are affected by this bug, you can probably download the
> libgmime package from there and install it. Then use "aptitude hold
> libgmime-2.0-2" to prevent it from being automatically upgraded on your
> next upgrade run.

I am not sure the problem is with libgmime-2.0-2.
mail-notification compiled and executed with version 2.2.9 is fine.
mail-notification compiled and executed with version 2.2.10 is fine.
mail-notification compiled with version 2.2.9 and executed with version
2.2.10 crashes.

It looks like an ABI incompatibility for libgmime-2.0-2 between 2.2.9
and 2.2.10. But I may be wrong.

I propose to just rebuild mail-notification using a binNMU or something
similar.

bye

-- 
 Dr. Ludovic Rousseau                        [EMAIL PROTECTED]
 -- Normaliser Unix c'est comme pasteuriser le camembert, L.R. --

Reply via email to