[sr-dev] git:master: modules/corex: only free path_vector from pkg if it is still in pkg... not shm cloned

Daniel-Constantin Mierla miconda at gmail.com
Mon Mar 10 14:43:44 CET 2014


Hello,

using internal msg flags is one solution for now. Probably you can push 
quickly a patch starting from current code, instead of reverting -- 
there were few related/similar commits, as I could spot.

When I get a chance I will push a function that can tell if a pointer is 
in shared memory. Still the flag could be safer to know if the value has 
to be freed (pkg/shm) or not at all.

Cheers,
Daniel

On 10/03/14 14:34, Jason Penton wrote:
> Hey Daniel,
>
> You are correct. Apologies, can you revert that commit and I will look 
> into it. While this works for not freeing pkg mem on a shm clone - I 
> see it will break in the other case. I suspect the only way to do it 
> now is to use msg flags?
>
> Cheers
> Jason
>
>
> On Mon, Mar 10, 2014 at 3:31 PM, Daniel-Constantin Mierla 
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>     Hello,
>
>     the condition to do pkg_free() or not for msg->path_vec.s doesn't
>     seem correct. You check if path_vec.s points inside SIP message
>     buffer, but that doesn't happen at all. Path vector is taken from
>     usrloc record in cloned in pkg for sip_msg structure.
>
>     Did I misunderstand something?
>
>     Cheers,
>     Daniel
>
>
>     On 10/03/14 13:39, Jason Penton wrote:
>
>         Module: sip-router
>         Branch: master
>         Commit: f15de29015546d173a1d3135f90653e05d85171f
>         URL:
>         http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=f15de29015546d173a1d3135f90653e05d85171f
>
>         Author: Jason Penton <jason.penton at gmail.com
>         <mailto:jason.penton at gmail.com>>
>         Committer: Jason Penton <jason.penton at gmail.com
>         <mailto:jason.penton at gmail.com>>
>         Date:   Mon Mar 10 14:38:51 2014 +0200
>
>         modules/corex: only free path_vector from pkg if it is still
>         in pkg... not shm cloned
>                 - related to earlier commit
>         4ab0f53ff247f411dde7b88d5b7d82fc7e17baa9
>
>         ---
>
>           modules/corex/corex_lib.c |    3 ++-
>           1 files changed, 2 insertions(+), 1 deletions(-)
>
>         diff --git a/modules/corex/corex_lib.c b/modules/corex/corex_lib.c
>         index 9d926c2..f83352b 100644
>         --- a/modules/corex/corex_lib.c
>         +++ b/modules/corex/corex_lib.c
>         @@ -84,7 +84,8 @@ int corex_append_branch(sip_msg_t *msg,
>         gparam_t *pu, gparam_t *pq)
>                         msg->dst_uri.s = 0;
>                         msg->dst_uri.len = 0;
>                         if(msg->path_vec.s!=0)
>         -                       pkg_free(msg->path_vec.s);
>         +                       if (likely(msg->path_vec.s >= msg->buf
>         && (msg->path_vec.s < (msg->buf + msg->len))))
>         + pkg_free(msg->path_vec.s);
>                         msg->path_vec.s = 0;
>                         msg->path_vec.len = 0;
>                 }
>
>
>         _______________________________________________
>         sr-dev mailing list
>         sr-dev at lists.sip-router.org <mailto: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://twitter.com/#%21/miconda> -
>     http://www.linkedin.com/in/miconda
>     Kamailio World Conference - April 2-4, 2014, Berlin, Germany
>     http://www.kamailioworld.com
>
>

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference - April 2-4, 2014, Berlin, Germany
http://www.kamailioworld.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140310/8262a58d/attachment.html>


More information about the sr-dev mailing list