Print this page
smatch: check libld_* allocation functions


 569         add_allocation_function("malloc", &match_alloc, 0);
 570         add_allocation_function("memdup", &match_alloc, 1);
 571         add_allocation_function("realloc", &match_alloc, 1);
 572         if (option_project == PROJ_KERNEL) {
 573                 add_allocation_function("kmalloc", &match_alloc, 0);
 574                 add_allocation_function("kzalloc", &match_alloc, 0);
 575                 add_allocation_function("vmalloc", &match_alloc, 0);
 576                 add_allocation_function("__vmalloc", &match_alloc, 0);
 577                 add_allocation_function("sock_kmalloc", &match_alloc, 1);
 578                 add_allocation_function("kmemdup", &match_alloc, 1);
 579                 add_allocation_function("kmemdup_user", &match_alloc, 1);
 580                 add_allocation_function("dma_alloc_attrs", &match_alloc, 1);
 581                 add_allocation_function("pci_alloc_consistent", &match_alloc, 1);
 582                 add_allocation_function("pci_alloc_coherent", &match_alloc, 1);
 583                 add_allocation_function("devm_kmalloc", &match_alloc, 1);
 584                 add_allocation_function("devm_kzalloc", &match_alloc, 1);
 585                 add_allocation_function("kcalloc", &match_calloc, 0);
 586                 add_allocation_function("devm_kcalloc", &match_calloc, 1);
 587                 add_allocation_function("kmalloc_array", &match_calloc, 0);
 588                 add_allocation_function("krealloc", &match_alloc, 1);




 589         }
 590 
 591         add_hook(&array_check, OP_HOOK);
 592         add_hook(&array_check_data_info, OP_HOOK);
 593 
 594         add_hook(&match_call, FUNCTION_CALL_HOOK);
 595         select_caller_info_hook(set_param_compare, ARRAY_LEN);
 596         select_caller_info_hook(set_arraysize_arg, ARRAYSIZE_ARG);
 597         add_hook(&munge_start_states, AFTER_DEF_HOOK);
 598 }
 599 
 600 void register_buf_comparison_links(int id)
 601 {
 602         link_id = id;
 603         add_merge_hook(link_id, &merge_links);
 604         add_modification_hook(link_id, &match_link_modify);
 605 }


 569         add_allocation_function("malloc", &match_alloc, 0);
 570         add_allocation_function("memdup", &match_alloc, 1);
 571         add_allocation_function("realloc", &match_alloc, 1);
 572         if (option_project == PROJ_KERNEL) {
 573                 add_allocation_function("kmalloc", &match_alloc, 0);
 574                 add_allocation_function("kzalloc", &match_alloc, 0);
 575                 add_allocation_function("vmalloc", &match_alloc, 0);
 576                 add_allocation_function("__vmalloc", &match_alloc, 0);
 577                 add_allocation_function("sock_kmalloc", &match_alloc, 1);
 578                 add_allocation_function("kmemdup", &match_alloc, 1);
 579                 add_allocation_function("kmemdup_user", &match_alloc, 1);
 580                 add_allocation_function("dma_alloc_attrs", &match_alloc, 1);
 581                 add_allocation_function("pci_alloc_consistent", &match_alloc, 1);
 582                 add_allocation_function("pci_alloc_coherent", &match_alloc, 1);
 583                 add_allocation_function("devm_kmalloc", &match_alloc, 1);
 584                 add_allocation_function("devm_kzalloc", &match_alloc, 1);
 585                 add_allocation_function("kcalloc", &match_calloc, 0);
 586                 add_allocation_function("devm_kcalloc", &match_calloc, 1);
 587                 add_allocation_function("kmalloc_array", &match_calloc, 0);
 588                 add_allocation_function("krealloc", &match_alloc, 1);
 589         } else if (option_project == PROJ_ILLUMOS_USER) {
 590                 add_allocation_function("libld_malloc", &match_alloc, 0);
 591                 add_allocation_function("libld_calloc", &match_calloc, 0);
 592                 add_allocation_function("libld_realloc", &match_calloc, 1);
 593         }
 594 
 595         add_hook(&array_check, OP_HOOK);
 596         add_hook(&array_check_data_info, OP_HOOK);
 597 
 598         add_hook(&match_call, FUNCTION_CALL_HOOK);
 599         select_caller_info_hook(set_param_compare, ARRAY_LEN);
 600         select_caller_info_hook(set_arraysize_arg, ARRAYSIZE_ARG);
 601         add_hook(&munge_start_states, AFTER_DEF_HOOK);
 602 }
 603 
 604 void register_buf_comparison_links(int id)
 605 {
 606         link_id = id;
 607         add_merge_hook(link_id, &merge_links);
 608         add_modification_hook(link_id, &match_link_modify);
 609 }