ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
April 17th, 2024 | 14:30-16:00 SGT (UTC+8) | Online

Wireshark-dev: Re: [Wireshark-dev] Out of Memory issue

From: "Kumar, Hemant" <kumarh@xxxxxxxxxxxx>
Date: Sat, 26 Jul 2008 01:23:24 -0700
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: wireshark-dev-bounces@xxxxxxxxxxxxx [mailto:wireshark-dev-bounces@xxxxxxxxxxxxx] 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@xxxxxxxxxxxxx
https://wireshark.org/mailman/listinfo/wireshark-dev