Print this page
smatch: check libld_* allocation functions


 121 
 122         FOR_EACH_PTR(freed_args, tracker) {
 123                 print_arg(tracker->sym);
 124         } END_FOR_EACH_PTR(tracker);
 125 
 126         free_trackers_and_list(&freed_args);
 127         return_count = 0;
 128 }
 129 
 130 void check_frees_argument(int id)
 131 {
 132         if (!option_info)
 133                 return;
 134 
 135         my_id = id;
 136         add_hook(&match_function_def, FUNC_DEF_HOOK);
 137         if (option_project == PROJ_KERNEL)
 138                 add_function_hook("kfree", &match_kfree, NULL);
 139         else
 140                 add_function_hook("free", &match_kfree, NULL);




 141         add_hook(&match_return, RETURN_HOOK);
 142         add_hook(&match_end_func, END_FUNC_HOOK);
 143         add_hook(&match_after_func, AFTER_FUNC_HOOK);
 144 }


 121 
 122         FOR_EACH_PTR(freed_args, tracker) {
 123                 print_arg(tracker->sym);
 124         } END_FOR_EACH_PTR(tracker);
 125 
 126         free_trackers_and_list(&freed_args);
 127         return_count = 0;
 128 }
 129 
 130 void check_frees_argument(int id)
 131 {
 132         if (!option_info)
 133                 return;
 134 
 135         my_id = id;
 136         add_hook(&match_function_def, FUNC_DEF_HOOK);
 137         if (option_project == PROJ_KERNEL)
 138                 add_function_hook("kfree", &match_kfree, NULL);
 139         else
 140                 add_function_hook("free", &match_kfree, NULL);
 141 
 142         if (option_project == PROJ_ILLUMOS_USER)
 143                 add_function_hook("libld_free", &match_kfree, NULL);
 144 
 145         add_hook(&match_return, RETURN_HOOK);
 146         add_hook(&match_end_func, END_FUNC_HOOK);
 147         add_hook(&match_after_func, AFTER_FUNC_HOOK);
 148 }