On Fri, Aug 25, 2017 at 01:08:32PM +0700, Nikolay Marchuk wrote:
> On 25.08.2017 07:41, Dmitry V. Levin wrote:
> > On Thu, Aug 24, 2017 at 06:19:41PM +0700, Nikolay Marchuk wrote:
> >> This change introduces new filtering architecture primitives: filter,
> >> filter_action and bool_expression. Filtering is now done after decoding of
> >> syscall and tcp->qual_flg stores filtering results.
> > This change is still to big to review.  Here are just two issues:
> >
> > [...]
> >> +void
> >> +apply_trace(struct tcb *tcp, void *_priv_data)
> > Please do not introduce identifiers with names starting with underscore.
> >
> > [...]
> >> --- a/strace.c
> >> +++ b/strace.c
> >> @@ -771,7 +771,8 @@ droptcb(struct tcb *tcp)
> >>  
> >>    int p;
> >>    for (p = 0; p < SUPPORTED_PERSONALITIES; ++p)
> >> -          free(tcp->inject_vec[p]);
> >> +          if (tcp->inject_vec[p])
> >> +                  free(tcp->inject_vec[p]);
> >>  
> >>    free_tcb_priv_data(tcp);
> >>  
> > What is this?
> tcp->inject_vec for a specific personality is initialized only if syscall 
> from this personality was injected,
> so inject_vec should be checked before freeing.

Why do you need to check this pointer before passing it to free(3)?


-- 
ldv

Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to