Print this page
11506 smatch resync

Split Close
Expand all
Collapse all
          --- old/usr/src/tools/smatch/src/check_err_ptr_deref.c
          +++ new/usr/src/tools/smatch/src/check_err_ptr_deref.c
↓ open down ↓ 214 lines elided ↑ open up ↑
 215  215  {
 216  216          if (option_project != PROJ_KERNEL)
 217  217                  return;
 218  218  
 219  219          my_id = id;
 220  220          return_implies_state("IS_ERR", 0, 0, &match_checked, NULL);
 221  221          return_implies_state("IS_ERR", 1, 1, &match_err, NULL);
 222  222          return_implies_state("IS_ERR_OR_NULL", 0, 0, &match_checked, NULL);
 223  223          return_implies_state("IS_ERR_OR_NULL", 1, 1, &match_err, NULL);
 224  224          return_implies_state("PTR_RET", 0, 0, &match_checked, NULL);
 225      -        return_implies_state("PTR_RET", -4096, -1, &match_err, NULL);
      225 +        return_implies_state("PTR_RET", -4095, -1, &match_err, NULL);
 226  226          register_err_ptr_funcs();
 227  227          add_hook(&match_dereferences, DEREF_HOOK);
 228  228          add_function_hook("ERR_PTR", &match_err_ptr_positive_const, NULL);
 229  229          add_function_hook("ERR_PTR", &match_err_ptr, NULL);
 230  230          add_hook(&match_condition, CONDITION_HOOK);
 231  231          add_modification_hook(my_id, &ok_to_use);
 232  232          add_function_hook("kfree", &match_kfree, INT_PTR(0));
 233  233          add_function_hook("brelse", &match_kfree, INT_PTR(0));
 234  234          add_function_hook("kmem_cache_free", &match_kfree, INT_PTR(1));
 235  235          add_function_hook("vfree", &match_kfree, INT_PTR(0));
 236  236  
 237  237          err_ptr_rl = clone_rl_permanent(alloc_rl(err_ptr_min, err_ptr_max));
 238  238  
 239  239          select_return_implies_hook(DEREFERENCE, &set_param_dereferenced);
 240  240  }
 241  241  
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX