Arnt Gulbrandsen wrote:
>I wrote:
>>The segfault must be something else. See if you can get a stack trace?
Well, I had to try it using an older version first (without my patches)
just to avoid wasting your time with stupid mistakes in my own patches.
But, as it seems, the problem still happens in the original version.
Here goes:
Program received signal SIGSEGV, Segmentation fault.
Mailbox::name (this=0x0) at server/mailbox.cpp:300
300 return d->name;
(gdb) where
#0 Mailbox::name (this=0x0) at server/mailbox.cpp:300
#1 0x0809e07e in Command::mailboxName (this=0xf728aa44)
at imap/command.cpp:1223
#2 0x0805d933 in Create::parse (this=0xf728aa44)
at imap/handlers/create.cpp:39
#3 0x08095438 in IMAP::runCommands (this=0xf72a0344) at imap/imap.cpp:545
#4 0x080959b8 in IMAP::react (this=0xf72a0344, e=Connection::Read)
at imap/imap.cpp:215
#5 0x0816de14 in EventLoop::dispatch (this=0xf72c1434, c=0xf72a0344, r=true,
w=false, now=1302697609) at server/eventloop.cpp:463
#6 0x0816e55c in EventLoop::start (this=0xf72c1434)
at server/eventloop.cpp:306
#7 0x081747d1 in Server::run (this=0xfffc297f) at server/server.cpp:637
#8 0x0804abc6 in main (argc=Cannot access memory at address 0xed
) at archiveopteryx/archiveopteryx.cpp:257
(gdb) up
#1 0x0809e07e in Command::mailboxName (this=0xf728aa44)
at imap/command.cpp:1223
1223 return u->inbox()->name();
(gdb) p u
$1 = (User *) 0xf72cbb74
(gdb) p *u
$2 = {<EventHandler> = {<Garbage> = {<No data fields>},
_vptr.EventHandler = 0x8595570, l = 0xf72816c4}, d = 0xf70e1f84}
(gdb) l
1218 if ( n.endsWith( "/" ) )
1219 n = n.mid( 0, n.length() - 1 );
1220
1221 User * u = imap()->user();
1222 if ( u && n.lower() == "inbox" ) {
1223 return u->inbox()->name();
1224 }
1225
1226 MUtf7Codec m;
1227 UString un( m.toUnicode( n ) );
(gdb)
The problem is easily reproduced. The debugger is still open, anything else
you'd like to see?
--
Stephen.
"Of all the stories you told me, which ones were true and which ones weren't?"
"My dear doctor, they're all true." "Even the lies?" "*Especially* the lies."