URL: https://github.com/SSSD/sssd/pull/447
Author: fidencio
 Title: #447: SYSDB: Remove code causing a covscan warning
Action: edited

 Changed field: body
Original value:
"""
There's no reason to check for both ret != EOK and sanitized == NULL, as
the second should never ever happen.

This check is causing a clang warning in our code:

 Defect type: CLANG_WARNING
 1. sssd-1.16.0/src/db/sysdb_ops.c:4223:9: warning: Dereference of undefined 
pointer value
 #     if (res->count > 1) {
 #         ^~~~~~~~~~
 4. sssd-1.16.0/src/db/sysdb_ops.c:4199:5: note: 'res' declared without an 
initial value
 #     struct ldb_result *res;
 #     ^~~~~~~~~~~~~~~~~~~~~~
 7. sssd-1.16.0/src/db/sysdb_ops.c:4202:9: note: Assuming 'sid_str' is non-null
 #     if (!sid_str) return EINVAL;
 #         ^~~~~~~~
 10. sssd-1.16.0/src/db/sysdb_ops.c:4202:5: note: Taking false branch
 #     if (!sid_str) return EINVAL;
 #     ^
 13. sssd-1.16.0/src/db/sysdb_ops.c:4205:9: note: Assuming 'tmp_ctx' is non-null
 #     if (!tmp_ctx) {
 #         ^~~~~~~~
 16. sssd-1.16.0/src/db/sysdb_ops.c:4205:5: note: Taking false branch
 #     if (!tmp_ctx) {
 #     ^
 19. sssd-1.16.0/src/db/sysdb_ops.c:4209:11: note: Calling 
'sysdb_search_object_by_sid'
 #     ret = sysdb_search_object_by_sid(tmp_ctx, domain, sid_str, NULL, &res);
 #           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 22. sssd-1.16.0/src/db/sysdb_ops.c:4960:12: note: Calling 
'sysdb_search_object_by_str_attr'
 #     return sysdb_search_object_by_str_attr(mem_ctx, domain, SYSDB_SID_FILTER,
 #            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 25. sssd-1.16.0/src/db/sysdb_ops.c:4872:5: note: Taking false branch
 #     if (str == NULL) {
 #     ^
 28. sssd-1.16.0/src/db/sysdb_ops.c:4877:9: note: Assuming 'ret' is equal to 0
 #     if (ret != EOK || sanitized == NULL) {
 #         ^~~~~~~~~~
 31. sssd-1.16.0/src/db/sysdb_ops.c:4877:9: note: Left side of '||' is false
 32. sssd-1.16.0/src/db/sysdb_ops.c:4877:23: note: Assuming 'sanitized' is 
equal to null
 #     if (ret != EOK || sanitized == NULL) {
 #                       ^~~~~~~~~~~~~~~~~
 35. sssd-1.16.0/src/db/sysdb_ops.c:4877:5: note: Taking true branch
 #     if (ret != EOK || sanitized == NULL) {
 #     ^
 38. sssd-1.16.0/src/db/sysdb_ops.c:4878:9: note: Left side of '||' is false
 #         DEBUG(SSSDBG_OP_FAILURE, "sss_filter_sanitize failed.\n");
 #         ^
 41. sssd-1.16.0/src/util/debug.h:123:9: note: expanded from macro 'DEBUG'
 #     if (DEBUG_IS_SET(__debug_macro_level)) { \
 #         ^
 44. sssd-1.16.0/src/util/debug.h:135:30: note: expanded from macro 
'DEBUG_IS_SET'
 # #define DEBUG_IS_SET(level) (debug_level & (level) || \
 #                              ^
 47. sssd-1.16.0/src/db/sysdb_ops.c:4878:9: note: Assuming 'debug_level' is not 
equal to 0
 #         DEBUG(SSSDBG_OP_FAILURE, "sss_filter_sanitize failed.\n");
 #         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 50. sssd-1.16.0/src/util/debug.h:123:9: note: expanded from macro 'DEBUG'
 #     if (DEBUG_IS_SET(__debug_macro_level)) { \
 #         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 53. sssd-1.16.0/src/util/debug.h:136:30: note: expanded from macro 
'DEBUG_IS_SET'
 #                             (debug_level == SSSDBG_UNRESOLVED && \
 #                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 56. sssd-1.16.0/src/db/sysdb_ops.c:4878:9: note: Left side of '&&' is false
 57. sssd-1.16.0/src/util/debug.h:123:9: note: expanded from macro 'DEBUG'
 #     if (DEBUG_IS_SET(__debug_macro_level)) { \
 #         ^
 60. sssd-1.16.0/src/util/debug.h:136:63: note: expanded from macro 
'DEBUG_IS_SET'
 #                             (debug_level == SSSDBG_UNRESOLVED && \
 #                                                               ^
 63. sssd-1.16.0/src/db/sysdb_ops.c:4878:9: note: Loop condition is false. 
Exiting loop
 64. sssd-1.16.0/src/util/debug.h:121:35: note: expanded from macro 'DEBUG'
 # #define DEBUG(level, format, ...) do { \
 #                                   ^
 67. sssd-1.16.0/src/db/sysdb_ops.c:4879:9: note: Control jumps to line 4892
 #         goto done;
 #         ^
 70. sssd-1.16.0/src/db/sysdb_ops.c:4960:12: note: Returning from 
'sysdb_search_object_by_str_attr'
 #     return sysdb_search_object_by_str_attr(mem_ctx, domain, SYSDB_SID_FILTER,
 #            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 73. sssd-1.16.0/src/db/sysdb_ops.c:4209:11: note: Returning from 
'sysdb_search_object_by_sid'
 #     ret = sysdb_search_object_by_sid(tmp_ctx, domain, sid_str, NULL, &res);
 #           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 76. sssd-1.16.0/src/db/sysdb_ops.c:4211:5: note: Taking false branch
 #     if (ret == ENOENT) {
 #     ^
 79. sssd-1.16.0/src/db/sysdb_ops.c:4217:12: note: Taking false branch
 #     } else if (ret != EOK) {
 #            ^
 82. sssd-1.16.0/src/db/sysdb_ops.c:4223:9: note: Dereference of undefined 
pointer value
 #     if (res->count > 1) {
 #         ^~~~~~~~~~
 #  4221|       }
 #  4222|
 #  4223|->     if (res->count > 1) {
 #  4224|           DEBUG(SSSDBG_FATAL_FAILURE, "getbysid call returned more 
than one " \
 #  4225|                                        "result !?!\n");

Signed-off-by: Fabiano FidĂȘncio <fiden...@redhat.com>
"""

_______________________________________________
sssd-devel mailing list -- sssd-devel@lists.fedorahosted.org
To unsubscribe send an email to sssd-devel-le...@lists.fedorahosted.org

Reply via email to