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 }
|