linuxkernel-must-check-errs¶
检查 Linux 内核代码是否使用了 linux/err.h
中函数的返回值。同时检查代码是否使用了直接从这些错误函数返回结果的函数。
这在 Linux 内核中非常重要,因为 ERR_PTR
、PTR_ERR
、IS_ERR
、IS_ERR_OR_NULL
、ERR_CAST
和 PTR_ERR_OR_ZERO
返回值必须进行检查,因为正指针和负错误代码在同一个上下文中使用。这些函数使用 __attribute__((warn_unused_result))
标记,但某些内核版本没有为 clang 启用此警告。
示例
/* Trivial unused call to an ERR function */
PTR_ERR_OR_ZERO(some_function_call());
/* A function that returns ERR_PTR. */
void *fn() { ERR_PTR(-EINVAL); }
/* An invalid use of fn. */
fn();