Print this page
smatch: check libld_* allocation functions


 273         var = expr_to_var_sym(expr, &sym);
 274         if (!var || !sym)
 275                 goto free;
 276         ret = parent_is_free_var_sym(var, sym);
 277 free:
 278         free_string(var);
 279         return ret;
 280 }
 281 
 282 void check_free(int id)
 283 {
 284         my_id = id;
 285 
 286         if (option_project == PROJ_KERNEL) {
 287                 /* The kernel use check_free_strict.c */
 288                 return;
 289         }
 290 
 291         add_function_hook("free", &match_free, INT_PTR(0));
 292 



 293         if (option_spammy)
 294                 add_hook(&match_symbol, SYM_HOOK);
 295         add_hook(&match_dereferences, DEREF_HOOK);
 296         add_hook(&match_call, FUNCTION_CALL_HOOK);
 297         add_hook(&match_return, RETURN_HOOK);
 298 
 299         add_modification_hook(my_id, &ok_to_use);
 300         select_return_implies_hook(PARAM_FREED, &set_param_freed);
 301         add_pre_merge_hook(my_id, &pre_merge_hook);
 302 }


 273         var = expr_to_var_sym(expr, &sym);
 274         if (!var || !sym)
 275                 goto free;
 276         ret = parent_is_free_var_sym(var, sym);
 277 free:
 278         free_string(var);
 279         return ret;
 280 }
 281 
 282 void check_free(int id)
 283 {
 284         my_id = id;
 285 
 286         if (option_project == PROJ_KERNEL) {
 287                 /* The kernel use check_free_strict.c */
 288                 return;
 289         }
 290 
 291         add_function_hook("free", &match_free, INT_PTR(0));
 292 
 293         if (option_project == PROJ_ILLUMOS_USER)
 294                 add_function_hook("libld_free", &match_free, INT_PTR(0));
 295 
 296         if (option_spammy)
 297                 add_hook(&match_symbol, SYM_HOOK);
 298         add_hook(&match_dereferences, DEREF_HOOK);
 299         add_hook(&match_call, FUNCTION_CALL_HOOK);
 300         add_hook(&match_return, RETURN_HOOK);
 301 
 302         add_modification_hook(my_id, &ok_to_use);
 303         select_return_implies_hook(PARAM_FREED, &set_param_freed);
 304         add_pre_merge_hook(my_id, &pre_merge_hook);
 305 }