OK, the version that you have is imap-2007, which was released on December
20, 2007.

I don't know what to make of the information from the debugger.  The "???"
and "expression cannot be evaluated" suggest that maybe the ssl_stream
points to unallocated memory at 0x017258e8.  That would explain the crash;
however, since the mail_stream at 0x01739978 is at a relatively nearby
address this is probably not a corrupted pointer. More importantly, the ssl_stream was definitely accessed earlier in the call chain due to the imap_send() call.

Off hand, this looks like some sort of memory corruption problem. I suggest that you upgrade to imap-2007e as I suggested before, just in case the update fixes the issue.

Otherwise, you just have to go through the usual methods to find memory corruption bugs. I doubt that the problem is in the code where it crashed; it is probably some place else. In fact, it may not be in the c-client library at all. If you can reproduce the problem at will, it will help a lot in finding the problem.

As I said earlier, I have never seen this problem.

Good luck.

On Wed, 21 Jan 2009, Raju Nanduri (rnanduri) wrote:

Hi Mark,

Thanks a lot for quick response  and some pointers . Here is the version
info'  I found in mail.h. This header also contains this line:  " Last
Edited: 19 November 2007 "

/* The Version */

#define CCLIENTVERSION "2007"


Here is the local variable info' for tcpstream from debugger if that
helps :

-       stream  0x017258e8 {tcpstream=??? cred={dwLower=??? dwUpper=???
} context={dwLower=??? dwUpper=??? } ...}       ssl_stream *
+       tcpstream       CXX0030: Error: expression cannot be evaluated
tcp_stream *
+       cred    {dwLower=??? dwUpper=??? }      _SecHandle
+       context {dwLower=??? dwUpper=??? }      _SecHandle
+       sizes   {cbHeader=??? cbTrailer=??? cbMaximumMessage=??? ...}
_SecPkgContext_StreamSizes
        bufsize CXX0030: Error: expression cannot be evaluated  unsigned
int
        ictr    CXX0030: Error: expression cannot be evaluated  int
+       iptr    CXX0030: Error: expression cannot be evaluated  char *
        iextractr       CXX0030: Error: expression cannot be evaluated
int
+       iextraptr       CXX0030: Error: expression cannot be evaluated
char *
+       ibuf    CXX0030: Error: expression cannot be evaluated  char *
+       obuf    CXX0030: Error: expression cannot be evaluated  char *

Thanks,
-Raju

-----Original Message-----
From: m...@hsinghsing.panda.com [mailto:m...@hsinghsing.panda.com] On
Behalf Of Mark Crispin
Sent: Wednesday, January 21, 2009 3:57 PM
To: Raju Nanduri (rnanduri)
Cc: imap-uw@u.washington.edu; Patrick Hamel (path)
Subject: Re: [Imap-uw] C-Client crashes on Vista

The first thing you should do is to determine which version of c-client
you have.  Newer versions of c-client have a #define CCLIENTVERSION near
the start of mail.h.  Your "April 08 as the date" confuses me; there was
no release version in April 2008 or on any April 8.

Please consider upgrading to the latest UW release (imap-2007e) and/or
working with me to get Panda IMAP (imap-2008) which has quite a bit that
never got into UW.

The stack trace is also a bit confusing.  ssl_w2k.c was last changed on
January 13, 2008 during imap-2007b development.  Line 622 is a comment,
and ssl_host() is several lines lower, so this tends to confirm that you
have an older version.

The stack trace omits some frames.  imap_parse_header() calls net_host()
which calls ssl_host(), but the stack trace implies a direct call.  This
is probably due to compiling with optimization.

It isn't at all clear to me why ssl_host() would crash.  All it does is
call tcp_host() with stream->tcpstream as an argument.  Since the
ssl_stream is non-null and a reasonable address (0x017258e8),
stream->tcpstream should have resolved.

Other than that, the stack looks reasonable; this is a reasonable flow
from mail_fetch_structure().

So, what you should do in the debugger at the point of the crash is take
a look at stream (the ssl_stream, not the mail_stream at higher levels)
and make sure that its contents are reasonable.  stream->tcpstream
should be non-null and point to a tcp_stream.

Last, but not least, this code is used extensively under Vista
(including by me).  This is the first that I have heard of this crash.
So it is possible that there is something that your application may be
doing to corrupt memory.

Unfortunately, this is probably all the help that I can offer you, at
least for now.  If you discover something interesting in the ssl_stream
or tcp_stream, I may be able to offer some insights.  Note that I no
longer support UW IMAP in any way.

Good luck!

On Wed, 21 Jan 2009, Raju Nanduri (rnanduri) wrote:
Hi there,

Need some help with a c-client library issue we are facing.

On some of Vista machines, Our Software crashes intermittently into
c-client library as pointed by the stack trace below. Our logs show
that it works fine for a while, fetches vmails etc and then it hangs
for few milli sec and finally crashes as shown below. Voice Mail
server is: MS Exchange 2007.  I think the The C-client version we are
using is from year 2007. The release notes show April 08 as the date.
Pl note that the same software works fine with out any issues on other

PCs running Vista and connecting to same Mail server under same
network.

The crash occurs in the source file " ssl_w2k.c" in c-client lib at
the point below:

*Crash here* >> !ssl_host(ssl_stream * stream=0x017258e8)  Line 622 +
0x6 C
 !imap_parse_header(mail_stream * stream=0x01739978, mail_envelope * *

env=0x01739f60, mail_sizedtext * hdr=0x0662e880, string_list *
stl=0x066300e0)  Line 4528 + 0x1a C
 !imap_cache(mail_stream * stream=0x01739978, unsigned long
msgno=0x00000027, char * seg=0x066300c8, string_list * stl=0x066300e0,

mail_sizedtext * text=0x0662e880)  Line 5024 + 0x16 C
!imap_parse_unsolicited(mail_stream * stream=0x01739978,
imap_parsed_reply * reply=0x0175402c)  Line 3839 C
!imap_reply(mail_stream * stream=0x01739978, char * tag=0x0662e9a8)
Line 3563 C  !imap_sout(mail_stream * stream=0x01739978, char *
tag=0x0662e9a8, char * base=0x01754084, char * * s=0x0662e8fc)  Line
3522 + 0x23 C  !imap_send(mail_stream * stream=0x01739978, char *
cmd=0x00bca514, imap_argument * * args=0x0662ee00)  Line 3132 C
!imap_structure(mail_stream * stream=0x01739978, unsigned long
msgno=0x00000016, mail_bodystruct * * body=0x0662f6a0, long
flags=0x00000000)  Line 1586 + 0x1b C
 !mail_fetch_structure(mail_stream * stream=0x01739978, unsigned long
msgno=0x00000016, mail_bodystruct * * body=0x0662f6a0, long
flags=0x00000000)  Line 1542 + 0x12 C
 !VVMClient::downloadHeader(mail_stream * stream=0x01739978, long
msgno=0x00000016, unsigned long uid=0x00028483)  Line 1861 + 0x9 C++
!VVMClient::header(mail_stream * stream=0x01739978, long
msgno=0x00000016)  Line 1524 + 0x13 C++

!VVMClient::refreshHeaders(std::basic_string<char,std::char_traits<cha
r> ,std::allocator<char> > localBox={...},
std::basic_string<char,std::char_traits<char>,std::allocator<char> >
localUname={...},
std::basic_string<char,std::char_traits<char>,std::allocator<char> >
localPwd={...})  Line 4439 + 0x9 C++

Any help/pointers is much appreciated.

Thanks,
-Raju



-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.


-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.
_______________________________________________
Imap-uw mailing list
Imap-uw@u.washington.edu
http://mailman2.u.washington.edu/mailman/listinfo/imap-uw

Reply via email to