Sure Daniel, I'm driving now but will patch as soon as I get home -- Sent using my phone and may be brief, to the point or contain typos -- On Mar 10, 2014 3:43 PM, "Daniel-Constantin Mierla" <[email protected]> wrote:
> 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 < > [email protected]> 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 <[email protected]> >>> Committer: Jason Penton <[email protected]> >>> 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 >>> [email protected] >>> 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 2-4, 2014, Berlin, Germany >> http://www.kamailioworld.com >> >> > > -- > Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda > - http://www.linkedin.com/in/miconda > Kamailio World Conference - April 2-4, 2014, Berlin, > Germanyhttp://www.kamailioworld.com > >
_______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
