Print this page
smatch: check libld_* allocation functions

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/check_kmalloc_wrong_size.c
          +++ new/usr/src/tools/smatch/src/check_kmalloc_wrong_size.c
↓ open down ↓ 76 lines elided ↑ open up ↑
  77   77                  return;
  78   78  
  79   79          arg = get_argument_from_call_expr(call->args, arg_nr);
  80   80          check_size_matches(ptr_size, arg);
  81   81  }
  82   82  
  83   83  void check_kmalloc_wrong_size(int id)
  84   84  {
  85   85          my_id = id;
  86   86  
  87      -        if (option_project != PROJ_KERNEL) {
  88      -                add_function_assign_hook("malloc", &match_alloc, NULL);
  89      -                add_function_assign_hook("calloc", &match_calloc, INT_PTR(1));
  90      -                return;
       87 +        if (option_project == PROJ_KERNEL) {
       88 +                add_function_assign_hook("kmalloc", &match_alloc, NULL);
       89 +                add_function_assign_hook("kcalloc", &match_calloc, INT_PTR(1));
  91   90          }
       91 +        
       92 +        add_function_assign_hook("malloc", &match_alloc, NULL);
       93 +        add_function_assign_hook("calloc", &match_calloc, INT_PTR(1));
  92   94  
  93      -        add_function_assign_hook("kmalloc", &match_alloc, NULL);
  94      -        add_function_assign_hook("kcalloc", &match_calloc, INT_PTR(1));
       95 +        if (option_project == PROJ_ILLUMOS_USER)
       96 +                add_function_assign_hook("libld_calloc", &match_calloc, INT_PTR(1));
  95   97  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX