[sr-dev] msilio - m_dump() patch

Stoyan Mihaylov stoyan.v.mihaylov at gmail.com
Thu Feb 7 16:38:04 CET 2013


Now it works fine. I can send and receive messages - online and offline.

On Thu, Feb 7, 2013 at 12:24 PM, Daniel-Constantin Mierla
<miconda at gmail.com> wrote:
> I pushed a patch on master branch, can you give it a try and see if all goes
> fine now?
>
> Cheers,
> Daniel
>
>
> On 2/5/13 10:44 PM, Daniel-Constantin Mierla wrote:
>>
>> Thanks for reporting, it has to be fixed without allocating an useless
>> byte. I will look at it soon.
>>
>> Cheers,
>> Daniel
>>
>> On 2/5/13 5:45 PM, Stoyan Mihaylov wrote:
>>>
>>> When I used, last versions from git, I got error and crash of kamailo
>>> using m_dump.
>>> I got latest version from git, and I made one patch:
>>>
>>> diff --git a/modules/msilo/msilo.c b/modules/msilo/msilo.c
>>> index 209b309..4bda8fa 100644
>>> --- a/modules/msilo/msilo.c
>>> +++ b/modules/msilo/msilo.c
>>> @@ -1125,8 +1125,16 @@ static int m_dump(struct sip_msg* msg, str*
>>> owner_s)
>>>                          memcpy(tmp_extra_hdrs.s, extra_hdrs_str.s,
>>> extra_hdrs_str.len);
>>> memcpy(tmp_extra_hdrs.s+extra_hdrs_str.len,
>>> str_vals[4].s, str_vals[4].len);
>>>                  } else {
>>> -                       tmp_extra_hdrs.len = 0;
>>> -                       tmp_extra_hdrs.s = "";
>>> +                       tmp_extra_hdrs.len = 0;
>>> +                       if ((tmp_extra_hdrs.s = pkg_malloc(1)) == NULL)
>>> +                       {
>>> +                               LM_ERR("Out of pkg memory");
>>> +                               if (msilo_dbf.free_result(db_con, db_res)
>>> < 0)
>>> +                                       LM_ERR("failed to free the
>>> query result\n");
>>> +                               msg_list_set_flag(ml, mid, MS_MSG_ERRO);
>>> +                               goto error;
>>> +                       }
>>> +                       tmp_extra_hdrs.s[0]='\x0';
>>>                  }
>>>                  hdr_str.len = 1024;
>>>                  if(m_build_headers(&hdr_str, str_vals[3] /*ctype*/,
>>>
>>>
>>> The problem is:
>>> tmp_extra_hdrs.s = "";
>>> and consequent
>>> pkg_free(tmp_extra_hdrs.s);
>>>
>>> As I see, there are couple of ways to solve problem, one of them is
>>> setting tmp_extra_hdrs.s = 0; but then we have warnings, or setting
>>> tmp_extra_hdrs.s = 0;
>>> and check before pkg_free, but pkg_free is used on couple of places.
>>> I am not sure what is the best way to report bugs and offer patches.
>>>
>>> _______________________________________________
>>> sr-dev mailing list
>>> sr-dev at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>
>>
>
> --
> Daniel-Constantin Mierla - http://www.asipto.com
> http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
> Kamailio World Conference, April 16-17, 2013, Berlin
>  - http://conference.kamailio.com -
>
>
> _______________________________________________
> sr-dev mailing list
> sr-dev at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev



More information about the sr-dev mailing list