URL:
https://github.com/SSSD/sssd/pull/141
Title: #141: PAM: Use cache_req to perform initgroups lookups
jhrozek commented:
"""
I'm afraid Coverity found something it doesn't like now:
````
Error: NULL_RETURNS (CWE-476):
sssd-1.15.1/src/responder/pam/pamsrv_cmd.c:1462: returned_null:
"cache_req_data_name" returns null (checked 9 out of 10 times).
sssd-1.15.1/src/responder/common/cache_req/cache_req_data.c:250:5: null_return: Calling
"cache_req_data_create" which might return null.
sssd-1.15.1/src/responder/common/cache_req/cache_req_data.c:78:9: return_null: Explicitly
returning null.
sssd-1.15.1/src/responder/common/cache_req/cache_req_data.c:250:5: return_null_fn:
Returning the return value of "cache_req_data_create", which might be null.
sssd-1.15.1/src/responder/common/cache_req/plugins/cache_req_group_by_filter.c:148:
example_assign: Example 1: Assigning: "data" = return value from
"cache_req_data_name(mem_ctx, CACHE_REQ_GROUP_BY_FILTER, filter)".
sssd-1.15.1/src/responder/common/cache_req/plugins/cache_req_group_by_filter.c:149:
example_checked: Example 1 (cont.): "data" has its value checked in "data
== NULL".
sssd-1.15.1/src/responder/common/cache_req/plugins/cache_req_group_by_name.c:213:
example_assign: Example 2: Assigning: "data" = return value from
"cache_req_data_name(mem_ctx, CACHE_REQ_GROUP_BY_NAME, name)".
sssd-1.15.1/src/responder/common/cache_req/plugins/cache_req_group_by_name.c:214:
example_checked: Example 2 (cont.): "data" has its value checked in "data
== NULL".
sssd-1.15.1/src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c:228:
example_assign: Example 3: Assigning: "data" = return value from
"cache_req_data_name(mem_ctx, CACHE_REQ_INITGROUPS, name)".
sssd-1.15.1/src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c:229:
example_checked: Example 3 (cont.): "data" has its value checked in "data
== NULL".
sssd-1.15.1/src/responder/common/cache_req/plugins/cache_req_netgroup_by_name.c:147:
example_assign: Example 4: Assigning: "data" = return value from
"cache_req_data_name(mem_ctx, CACHE_REQ_NETGROUP_BY_NAME, name)".
sssd-1.15.1/src/responder/common/cache_req/plugins/cache_req_netgroup_by_name.c:148:
example_checked: Example 4 (cont.): "data" has its value checked in "data
== NULL".
sssd-1.15.1/src/responder/common/cache_req/plugins/cache_req_user_by_filter.c:148:
example_assign: Example 5: Assigning: "data" = return value from
"cache_req_data_name(mem_ctx, CACHE_REQ_USER_BY_FILTER, filter)".
sssd-1.15.1/src/responder/common/cache_req/plugins/cache_req_user_by_filter.c:149:
example_checked: Example 5 (cont.): "data" has its value checked in "data
== NULL".
sssd-1.15.1/src/responder/pam/pamsrv_cmd.c:1462: var_assigned: Assigning: "data"
= null return value from "cache_req_data_name".
sssd-1.15.1/src/responder/pam/pamsrv_cmd.c:1475: dereference: Dereferencing a pointer that
might be null "data" when calling "cache_req_data_set_bypass_cache".
sssd-1.15.1/src/responder/common/cache_req/cache_req_data.c:365:5: deref_parm: Directly
dereferencing parameter "data".
# 363| bool bypass_cache)
# 364| {
# 365|-> data->bypass_cache = bypass_cache;
# 366| }
````
"""
See the full comment at
https://github.com/SSSD/sssd/pull/141#issuecomment-283039533