Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

scan coverity findings #136

Open
trufae opened this issue May 18, 2021 · 1 comment
Open

scan coverity findings #136

trufae opened this issue May 18, 2021 · 1 comment

Comments

@trufae
Copy link

trufae commented May 18, 2021

I have updated mpc from the @radareorg repository and got some leaks and bugs reported by coverity. So i think is better to report it in here :) hope it helps

** CID 1453141:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3445 in mpcaf_fold_regex()


________________________________________________________________________________________________________
*** CID 1453141:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3445 in mpcaf_fold_regex()
3439       int mode = MPC_RE_DEFAULT;
3440     
3441       (void)n;
3442       if (strchr(m, 'm')) { mode |= MPC_RE_MULTILINE; }
3443       if (strchr(m, 's')) { mode |= MPC_RE_DOTALL; }
3444       y = mpcf_unescape_regex(y);
   CID 1453141:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_re_mode(y, mode)" leaks it.
3445       p = (st->flags & MPCA_LANG_WHITESPACE_SENSITIVE) ? mpc_re_mode(y, mode) : mpc_tok(mpc_re_mode(y, mode));
3446       free(y);
3447       free(m);
3448     
3449       return mpca_state(mpca_tag(mpc_apply(p, mpcf_str_ast), "regex"));
3450     }

** CID 1453140:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3720 in mpca_lang_st()


________________________________________________________________________________________________________
*** CID 1453140:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3720 in mpca_lang_st()
3714             mpc_sym("!"),
3715             mpc_tok_brackets(mpc_int(), free),
3716             mpc_pass()),
3717         mpc_soft_delete
3718       ));
3719     
   CID 1453140:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_lift_val(st)" leaks it.
3720       mpc_define(Base, mpc_or(5,
3721         mpc_apply_to(mpc_tok(mpc_string_lit()), mpcaf_grammar_string, st),
3722         mpc_apply_to(mpc_tok(mpc_char_lit()),   mpcaf_grammar_char, st),
3723         mpc_tok(mpc_and(3, mpcaf_fold_regex, mpc_regex_lit(), mpc_many(mpcf_strfold, mpc_oneof("ms")), mpc_lift_val(st), free, free)),
3724         mpc_apply_to(mpc_tok_braces(mpc_or(2, mpc_digits(), mpc_ident()), free), mpcaf_grammar_id, st),
3725         mpc_tok_parens(Grammar, mpc_soft_delete)

** CID 1453139:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2387 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453139:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2387 in mpc_re_mode()
2381           mpc_char('*'), mpc_char('+'), mpc_char('?'),
2382           mpc_brackets(mpc_int(), free),
2383           mpc_pass()),
2384         (mpc_dtor_t)mpc_delete
2385       ));
2386     
   CID 1453139:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_squares(Range, (mpc_dtor_t)mpc_delete)" leaks it.
2387       mpc_define(Base, mpc_or(4,
2388         mpc_parens(Regex, (mpc_dtor_t)mpc_delete),
2389         mpc_squares(Range, (mpc_dtor_t)mpc_delete),
2390         mpc_apply_to(mpc_escape(), mpcf_re_escape, &mode),
2391         mpc_apply_to(mpc_noneof(")|"), mpcf_re_escape, &mode)
2392       ));

** CID 1453138:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3720 in mpca_lang_st()


________________________________________________________________________________________________________
*** CID 1453138:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3720 in mpca_lang_st()
3714             mpc_sym("!"),
3715             mpc_tok_brackets(mpc_int(), free),
3716             mpc_pass()),
3717         mpc_soft_delete
3718       ));
3719     
   CID 1453138:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_and(3, mpcaf_fold_regex, mpc_regex_lit(), mpc_many(mpcf_strfold, mpc_oneof("ms")), mpc_lift_val(st), free, free)" leaks it.
3720       mpc_define(Base, mpc_or(5,
3721         mpc_apply_to(mpc_tok(mpc_string_lit()), mpcaf_grammar_string, st),
3722         mpc_apply_to(mpc_tok(mpc_char_lit()),   mpcaf_grammar_char, st),
3723         mpc_tok(mpc_and(3, mpcaf_fold_regex, mpc_regex_lit(), mpc_many(mpcf_strfold, mpc_oneof("ms")), mpc_lift_val(st), free, free)),
3724         mpc_apply_to(mpc_tok_braces(mpc_or(2, mpc_digits(), mpc_ident()), free), mpcaf_grammar_id, st),
3725         mpc_tok_parens(Grammar, mpc_soft_delete)

** CID 1453137:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3558 in mpca_grammar_st()


________________________________________________________________________________________________________
*** CID 1453137:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3558 in mpca_grammar_st()
3552             mpc_sym("!"),
3553             mpc_tok_brackets(mpc_int(), free),
3554             mpc_pass()),
3555         mpc_soft_delete
3556       ));
3557     
   CID 1453137:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_and(3, mpcaf_fold_regex, mpc_regex_lit(), mpc_many(mpcf_strfold, mpc_oneof("ms")), mpc_lift_val(st), free, free)" leaks it.
3558       mpc_define(Base, mpc_or(5,
3559         mpc_apply_to(mpc_tok(mpc_string_lit()), mpcaf_grammar_string, st),
3560         mpc_apply_to(mpc_tok(mpc_char_lit()),   mpcaf_grammar_char, st),
3561         mpc_tok(mpc_and(3, mpcaf_fold_regex, mpc_regex_lit(), mpc_many(mpcf_strfold, mpc_oneof("ms")), mpc_lift_val(st), free, free)),
3562         mpc_apply_to(mpc_tok_braces(mpc_or(2, mpc_digits(), mpc_ident()), free), mpcaf_grammar_id, st),
3563         mpc_tok_parens(Grammar, mpc_soft_delete)

** CID 1453136:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2399 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453136:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2399 in mpc_re_mode()
2393     
2394       mpc_define(Range, mpc_apply(
2395         mpc_many(mpcf_strfold, mpc_or(2, mpc_escape(), mpc_noneof("]"))),
2396         mpcf_re_range
2397       ));
2398     
   CID 1453136:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_predictive(Regex)" leaks it.
2399       RegexEnclose = mpc_whole(mpc_predictive(Regex), (mpc_dtor_t)mpc_delete);
2400     
2401       mpc_optimise(RegexEnclose);
2402       mpc_optimise(Regex);
2403       mpc_optimise(Term);
2404       mpc_optimise(Factor);

** CID 1453135:    (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2387 in mpc_re_mode()
/shlr/mpc/mpc.c: 2387 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453135:    (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2387 in mpc_re_mode()
2381           mpc_char('*'), mpc_char('+'), mpc_char('?'),
2382           mpc_brackets(mpc_int(), free),
2383           mpc_pass()),
2384         (mpc_dtor_t)mpc_delete
2385       ));
2386     
   CID 1453135:    (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_apply_to(mpc_escape(), mpcf_re_escape, &mode)" leaks it.
2387       mpc_define(Base, mpc_or(4,
2388         mpc_parens(Regex, (mpc_dtor_t)mpc_delete),
2389         mpc_squares(Range, (mpc_dtor_t)mpc_delete),
2390         mpc_apply_to(mpc_escape(), mpcf_re_escape, &mode),
2391         mpc_apply_to(mpc_noneof(")|"), mpcf_re_escape, &mode)
2392       ));
/shlr/mpc/mpc.c: 2387 in mpc_re_mode()
2381           mpc_char('*'), mpc_char('+'), mpc_char('?'),
2382           mpc_brackets(mpc_int(), free),
2383           mpc_pass()),
2384         (mpc_dtor_t)mpc_delete
2385       ));
2386     
   CID 1453135:    (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_apply_to(mpc_noneof(")|"), mpcf_re_escape, &mode)" leaks it.
2387       mpc_define(Base, mpc_or(4,
2388         mpc_parens(Regex, (mpc_dtor_t)mpc_delete),
2389         mpc_squares(Range, (mpc_dtor_t)mpc_delete),
2390         mpc_apply_to(mpc_escape(), mpcf_re_escape, &mode),
2391         mpc_apply_to(mpc_noneof(")|"), mpcf_re_escape, &mode)
2392       ));

** CID 1453134:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3720 in mpca_lang_st()


________________________________________________________________________________________________________
*** CID 1453134:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3720 in mpca_lang_st()
3714             mpc_sym("!"),
3715             mpc_tok_brackets(mpc_int(), free),
3716             mpc_pass()),
3717         mpc_soft_delete
3718       ));
3719     
   CID 1453134:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_many(mpcf_strfold, mpc_oneof("ms"))" leaks it.
3720       mpc_define(Base, mpc_or(5,
3721         mpc_apply_to(mpc_tok(mpc_string_lit()), mpcaf_grammar_string, st),
3722         mpc_apply_to(mpc_tok(mpc_char_lit()),   mpcaf_grammar_char, st),
3723         mpc_tok(mpc_and(3, mpcaf_fold_regex, mpc_regex_lit(), mpc_many(mpcf_strfold, mpc_oneof("ms")), mpc_lift_val(st), free, free)),
3724         mpc_apply_to(mpc_tok_braces(mpc_or(2, mpc_digits(), mpc_ident()), free), mpcaf_grammar_id, st),
3725         mpc_tok_parens(Grammar, mpc_soft_delete)

** CID 1453133:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2387 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453133:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2387 in mpc_re_mode()
2381           mpc_char('*'), mpc_char('+'), mpc_char('?'),
2382           mpc_brackets(mpc_int(), free),
2383           mpc_pass()),
2384         (mpc_dtor_t)mpc_delete
2385       ));
2386     
   CID 1453133:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_parens(Regex, (mpc_dtor_t)mpc_delete)" leaks it.
2387       mpc_define(Base, mpc_or(4,
2388         mpc_parens(Regex, (mpc_dtor_t)mpc_delete),
2389         mpc_squares(Range, (mpc_dtor_t)mpc_delete),
2390         mpc_apply_to(mpc_escape(), mpcf_re_escape, &mode),
2391         mpc_apply_to(mpc_noneof(")|"), mpcf_re_escape, &mode)
2392       ));

** CID 1453132:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453132:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()
2372         mpc_maybe(mpc_and(2, mpcf_snd_free, mpc_char('|'), Regex, free)),
2373         (mpc_dtor_t)mpc_delete
2374       ));
2375     
2376       mpc_define(Term, mpc_many(mpcf_re_and, Factor));
2377     
   CID 1453132:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_or(5, mpc_char('*'), mpc_char('+'), mpc_char('?'), mpc_brackets(mpc_int(), free), mpc_pass())" leaks it.
2378       mpc_define(Factor, mpc_and(2, mpcf_re_repeat,
2379         Base,
2380         mpc_or(5,
2381           mpc_char('*'), mpc_char('+'), mpc_char('?'),
2382           mpc_brackets(mpc_int(), free),
2383           mpc_pass()),

** CID 1453131:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2394 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453131:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2394 in mpc_re_mode()
2388         mpc_parens(Regex, (mpc_dtor_t)mpc_delete),
2389         mpc_squares(Range, (mpc_dtor_t)mpc_delete),
2390         mpc_apply_to(mpc_escape(), mpcf_re_escape, &mode),
2391         mpc_apply_to(mpc_noneof(")|"), mpcf_re_escape, &mode)
2392       ));
2393     
   CID 1453131:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_escape()" leaks it.
2394       mpc_define(Range, mpc_apply(
2395         mpc_many(mpcf_strfold, mpc_or(2, mpc_escape(), mpc_noneof("]"))),
2396         mpcf_re_range
2397       ));
2398     
2399       RegexEnclose = mpc_whole(mpc_predictive(Regex), (mpc_dtor_t)mpc_delete);

** CID 1453130:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2420 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453130:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2420 in mpc_re_mode()
2414       }
2415     
2416       mpc_cleanup(6, RegexEnclose, Regex, Term, Factor, Base, Range);
2417     
2418       mpc_optimise(r.output);
2419     
   CID 1453130:  Resource leaks  (RESOURCE_LEAK)
   Variable "RegexEnclose" going out of scope leaks the storage it points to.
2420       return r.output;
2421     
2422     }
2423     
2424     /*
2425     ** Common Fold Functions

** CID 1453129:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453129:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()
2372         mpc_maybe(mpc_and(2, mpcf_snd_free, mpc_char('|'), Regex, free)),
2373         (mpc_dtor_t)mpc_delete
2374       ));
2375     
2376       mpc_define(Term, mpc_many(mpcf_re_and, Factor));
2377     
   CID 1453129:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_pass()" leaks it.
2378       mpc_define(Factor, mpc_and(2, mpcf_re_repeat,
2379         Base,
2380         mpc_or(5,
2381           mpc_char('*'), mpc_char('+'), mpc_char('?'),
2382           mpc_brackets(mpc_int(), free),
2383           mpc_pass()),

** CID 1453128:    (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2370 in mpc_re_mode()
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453128:    (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2370 in mpc_re_mode()
2364       Regex  = mpc_new("regex");
2365       Term   = mpc_new("term");
2366       Factor = mpc_new("factor");
2367       Base   = mpc_new("base");
2368       Range  = mpc_new("range");
2369     
   CID 1453128:    (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_char('|')" leaks it.
2370       mpc_define(Regex, mpc_and(2, mpcf_re_or,
2371         Term,
2372         mpc_maybe(mpc_and(2, mpcf_snd_free, mpc_char('|'), Regex, free)),
2373         (mpc_dtor_t)mpc_delete
2374       ));
2375     
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()
2372         mpc_maybe(mpc_and(2, mpcf_snd_free, mpc_char('|'), Regex, free)),
2373         (mpc_dtor_t)mpc_delete
2374       ));
2375     
2376       mpc_define(Term, mpc_many(mpcf_re_and, Factor));
2377     
   CID 1453128:    (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_char('+')" leaks it.
2378       mpc_define(Factor, mpc_and(2, mpcf_re_repeat,
2379         Base,
2380         mpc_or(5,
2381           mpc_char('*'), mpc_char('+'), mpc_char('?'),
2382           mpc_brackets(mpc_int(), free),
2383           mpc_pass()),
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()
2372         mpc_maybe(mpc_and(2, mpcf_snd_free, mpc_char('|'), Regex, free)),
2373         (mpc_dtor_t)mpc_delete
2374       ));
2375     
2376       mpc_define(Term, mpc_many(mpcf_re_and, Factor));
2377     
   CID 1453128:    (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_char('*')" leaks it.
2378       mpc_define(Factor, mpc_and(2, mpcf_re_repeat,
2379         Base,
2380         mpc_or(5,
2381           mpc_char('*'), mpc_char('+'), mpc_char('?'),
2382           mpc_brackets(mpc_int(), free),
2383           mpc_pass()),
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()
2372         mpc_maybe(mpc_and(2, mpcf_snd_free, mpc_char('|'), Regex, free)),
2373         (mpc_dtor_t)mpc_delete
2374       ));
2375     
2376       mpc_define(Term, mpc_many(mpcf_re_and, Factor));
2377     
   CID 1453128:    (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_char('?')" leaks it.
2378       mpc_define(Factor, mpc_and(2, mpcf_re_repeat,
2379         Base,
2380         mpc_or(5,
2381           mpc_char('*'), mpc_char('+'), mpc_char('?'),
2382           mpc_brackets(mpc_int(), free),
2383           mpc_pass()),

** CID 1453127:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2370 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453127:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2370 in mpc_re_mode()
2364       Regex  = mpc_new("regex");
2365       Term   = mpc_new("term");
2366       Factor = mpc_new("factor");
2367       Base   = mpc_new("base");
2368       Range  = mpc_new("range");
2369     
   CID 1453127:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_maybe(mpc_and(2, mpcf_snd_free, mpc_char('|'), Regex, free))" leaks it.
2370       mpc_define(Regex, mpc_and(2, mpcf_re_or,
2371         Term,
2372         mpc_maybe(mpc_and(2, mpcf_snd_free, mpc_char('|'), Regex, free)),
2373         (mpc_dtor_t)mpc_delete
2374       ));
2375     

** CID 1453126:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2394 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453126:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2394 in mpc_re_mode()
2388         mpc_parens(Regex, (mpc_dtor_t)mpc_delete),
2389         mpc_squares(Range, (mpc_dtor_t)mpc_delete),
2390         mpc_apply_to(mpc_escape(), mpcf_re_escape, &mode),
2391         mpc_apply_to(mpc_noneof(")|"), mpcf_re_escape, &mode)
2392       ));
2393     
   CID 1453126:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_noneof("]")" leaks it.
2394       mpc_define(Range, mpc_apply(
2395         mpc_many(mpcf_strfold, mpc_or(2, mpc_escape(), mpc_noneof("]"))),
2396         mpcf_re_range
2397       ));
2398     
2399       RegexEnclose = mpc_whole(mpc_predictive(Regex), (mpc_dtor_t)mpc_delete);

** CID 1453125:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453125:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2378 in mpc_re_mode()
2372         mpc_maybe(mpc_and(2, mpcf_snd_free, mpc_char('|'), Regex, free)),
2373         (mpc_dtor_t)mpc_delete
2374       ));
2375     
2376       mpc_define(Term, mpc_many(mpcf_re_and, Factor));
2377     
   CID 1453125:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_int()" leaks it.
2378       mpc_define(Factor, mpc_and(2, mpcf_re_repeat,
2379         Base,
2380         mpc_or(5,
2381           mpc_char('*'), mpc_char('+'), mpc_char('?'),
2382           mpc_brackets(mpc_int(), free),
2383           mpc_pass()),

** CID 1453124:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2420 in mpc_re_mode()


________________________________________________________________________________________________________
*** CID 1453124:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 2420 in mpc_re_mode()
2414       }
2415     
2416       mpc_cleanup(6, RegexEnclose, Regex, Term, Factor, Base, Range);
2417     
2418       mpc_optimise(r.output);
2419     
   CID 1453124:  Resource leaks  (RESOURCE_LEAK)
   Variable "Base" going out of scope leaks the storage it points to.
2420       return r.output;
2421     
2422     }
2423     
2424     /*
2425     ** Common Fold Functions

** CID 1453123:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3558 in mpca_grammar_st()


________________________________________________________________________________________________________
*** CID 1453123:  Resource leaks  (RESOURCE_LEAK)
/shlr/mpc/mpc.c: 3558 in mpca_grammar_st()
3552             mpc_sym("!"),
3553             mpc_tok_brackets(mpc_int(), free),
3554             mpc_pass()),
3555         mpc_soft_delete
3556       ));
3557     
   CID 1453123:  Resource leaks  (RESOURCE_LEAK)
   Failing to save or free storage allocated by "mpc_tok(mpc_and(3, mpcaf_fold_regex, mpc_regex_lit(), mpc_many(mpcf_strfold, mpc_oneof("ms")), mpc_lift_val(st), free, free))" leaks it.
3558       mpc_define(Base, mpc_or(5,
3559         mpc_apply_to(mpc_tok(mpc_string_lit()), mpcaf_grammar_string, st),
3560         mpc_apply_to(mpc_tok(mpc_char_lit()),   mpcaf_grammar_char, st),
3561         mpc_tok(mpc_and(3, mpcaf_fold_regex, mpc_regex_lit(), mpc_many(mpcf_strfold, mpc_oneof("ms")), mpc_lift_val(st), free, free)),
3562         mpc_apply_to(mpc_tok_braces(mpc_or(2, mpc_digits(), mpc_ident()), free), mpcaf_grammar_id, st),
3563         mpc_tok_parens(Grammar, mpc_soft_delete)
@orangeduck
Copy link
Owner

Lots of these look like false positives - i.e. the destructor such as free is getting stored somewhere and will be used to free the memory later. Perhaps worth verifying these in valgrind?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants