Hello Harris and Jaap Thanks for all the support. The problem was indeed with my message as the capture I made was >From a faulty interface and so some of the packets contained Wrong message id etc fields leading to junk value in message Pointer and actually this happened after dissecting 16000 Something messages so I couldn't guess it in the first glance.
Anyway Thanks for going through my mails time and again. Hemant -----Original Message----- From: Kumar, Hemant Sent: Saturday, July 26, 2008 12:18 AM To: 'Developer support list for Wireshark' Subject: RE: [Wireshark-dev] Out of Memory issue Hello Harris To clarify The following code snippet do not works:--- > if (check_col(pinfo->cinfo,COL_INFO)) > { > > temp_str = ep_alloc(STRING_BUFFER); > printf( "[%s] %s ", message->direction, > message->message_type); > } And the following does work with only ep_alloc() if (check_col(pinfo->cinfo,COL_INFO)) { temp_str = ep_alloc(STRING_BUFFER); } So it seems some memeory allocation error with message->direction, message->message_type is occuring .But actually the message just points to a Static array element of message type structure so there is no need for Deallocation for static array or is it? Thanks Hemant -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Guy Harris Sent: Friday, July 25, 2008 3:45 PM To: Developer support list for Wireshark Subject: Re: [Wireshark-dev] Out of Memory issue On Jul 25, 2008, at 3:23 PM, Kumar, Hemant wrote: > Even if I comment as shown below and add a simple printf statement > it fails but if I just keep the first line ep_alloc() and comment > everything > With no printf addition then it works.:-- > > if (check_col(pinfo->cinfo,COL_INFO)) > { > > temp_str = ep_alloc(STRING_BUFFER); > printf( "[%s] %s ", message->direction, > message->message_type); > // g_snprintf( temp_str, sizeof(temp_str), "[%s] > %s ", message->direction, message->message_type); > // col_add_str(pinfo->cinfo, COL_INFO, temp_str); > > } So that sample does, or doesn't, work? If it doesn't work, is the code that does work if (check_col(pinfo->cinfo,COL_INFO)) { temp_str = ep_alloc(STRING_BUFFER); // printf( "[%s] %s ", message->direction, message->message_type); // g_snprintf( temp_str, sizeof(temp_str), "[%s] %s ", message->direction, message->message_type); // col_add_str(pinfo->cinfo, COL_INFO, temp_str); } or, equivalently: if (check_col(pinfo->cinfo,COL_INFO)) { temp_str = ep_alloc(STRING_BUFFER); // g_snprintf( temp_str, sizeof(temp_str), "[%s] %s ", message->direction, message->message_type); // col_add_str(pinfo->cinfo, COL_INFO, temp_str); } (i.e., "just keep the first line ep_alloc()" and "comment everything with no printf addition"? By the way, there's a "col_add_fstr()" routine which takes a format string and an argument list, so you can just do if (check_col(pinfo->cinfo, COL_INFO)) { col_add_fstr(pinfo->cinfo, COL_INFO, "[%s] %s ", message- >direction, message->message_type); } You also don't have to do if (check_col(pinfo->cinfo,COL_INFO)) { col_clear(pinfo->cinfo,COL_INFO); } if, immediately after that, you're going to set the string. _______________________________________________ Wireshark-dev mailing list Wireshark-dev@wireshark.org https://wireshark.org/mailman/listinfo/wireshark-dev _______________________________________________ Wireshark-dev mailing list Wireshark-dev@wireshark.org https://wireshark.org/mailman/listinfo/wireshark-dev