URL: https://github.com/SSSD/sssd/pull/601 Title: #601: sbus: integrate sssd with sbus2
pbrezina commented: """ > The old sbus implementation had quite a few tests that were generating some > interface and then calling it. I also liked the tests because they were > useful as a documentation. Do you plan on adding some unit tests for the new > sbus library as well? I do plan to provide tests (and much broader set of tests) but it will not be done before the patches are merged as I need to focus elsewhere. So far I fixed the coverity issues and squashed the changes in. Here is the diff: ```diff diff --git a/src/providers/data_provider/dp_iface_backend.c b/src/providers/data_provider/dp_iface_backend.c index 4066909..25a00f3 100644 --- a/src/providers/data_provider/dp_iface_backend.c +++ b/src/providers/data_provider/dp_iface_backend.c @@ -37,7 +37,6 @@ dp_backend_is_online(TALLOC_CTX *mem_ctx, struct sss_domain_info *domain; if (SBUS_REQ_STRING_IS_EMPTY(domname)) { - domain = be_ctx->domain; *_is_online = be_is_offline(be_ctx); return EOK; } diff --git a/src/providers/data_provider/dp_target_sudo.c b/src/providers/data_provider/dp_target_sudo.c index bc5f9c8..db14039 100644 --- a/src/providers/data_provider/dp_target_sudo.c +++ b/src/providers/data_provider/dp_target_sudo.c @@ -56,6 +56,7 @@ static errno_t dp_sudo_parse_message(TALLOC_CTX *mem_ctx, switch (sudo_type) { case BE_REQ_SUDO_FULL: /* no arguments required */ + rules = NULL; break; case BE_REQ_SUDO_RULES: /* additional arguments: diff --git a/src/responder/ifp/ifp_groups.c b/src/responder/ifp/ifp_groups.c index b6fae92..353f3a7 100644 --- a/src/responder/ifp/ifp_groups.c +++ b/src/responder/ifp/ifp_groups.c @@ -994,8 +994,6 @@ ifp_groups_group_get_members(TALLOC_CTX *mem_ctx, if (num_members == 0) { users = NULL; groups = NULL; - num_users = 0; - num_groups = 0; ret = EOK; goto done; } diff --git a/src/sbus/codegen/sbus_Generator.py b/src/sbus/codegen/sbus_Generator.py index 4e5e8bb..e950843 100644 --- a/src/sbus/codegen/sbus_Generator.py +++ b/src/sbus/codegen/sbus_Generator.py @@ -764,10 +764,14 @@ class Generator: type = DataType.Find( invoker.input.arguments['value'].signature ) - if self.hasAny(invoker.output): + elif self.hasAny(invoker.output): type = DataType.Find( invoker.output.arguments['value'].signature ) + else: + raise ValueError( + 'Invoker has no input nor output argument\n' + ) tpl.show("if-use-talloc", type.RequireTalloc) diff --git a/src/sbus/interface/sbus_introspection.c b/src/sbus/interface/sbus_introspection.c index d4daedc..b2de9a9 100644 --- a/src/sbus/interface/sbus_introspection.c +++ b/src/sbus/interface/sbus_introspection.c @@ -248,8 +248,6 @@ sbus_introspect_property_mode(struct sbus_introspect_property *property) default: return "readwrite"; } - - return "invalid"; } static errno_t diff --git a/src/sbus/request/sbus_request_hash.c b/src/sbus/request/sbus_request_hash.c index 68dc79c..441fce2 100644 --- a/src/sbus/request/sbus_request_hash.c +++ b/src/sbus/request/sbus_request_hash.c @@ -265,6 +265,11 @@ void sbus_requests_finish(struct sbus_request_list *item, errno_t error) { + if (item == NULL) { + DEBUG(SSSDBG_MINOR_FAILURE, "Bug: item is NULL\n"); + return; + } + if (item->is_invalid) { return; } diff --git a/src/sbus/router/sbus_router_hash.c b/src/sbus/router/sbus_router_hash.c index 41111bc..186dc61 100644 --- a/src/sbus/router/sbus_router_hash.c +++ b/src/sbus/router/sbus_router_hash.c @@ -337,7 +337,8 @@ sbus_listener_list_lookup(struct sbus_listener_list *list, struct sbus_listener_list *item; struct sbus_listener *b; - /* We know that interface and signal name already match. */ + /* We know that interface and signal name already match. We need to check + * handlers and object paths. */ DLIST_FOR_EACH(item, list) { b = item->listener; @@ -345,6 +346,10 @@ sbus_listener_list_lookup(struct sbus_listener_list *list, continue; } + if (a->object_path == NULL && b->object_path == NULL) { + return b; + } + if (a->object_path == NULL && b->object_path != NULL) { continue; } diff --git a/src/sbus/server/sbus_server_match.c b/src/sbus/server/sbus_server_match.c index 6a65328..07bdf5b 100644 --- a/src/sbus/server/sbus_server_match.c +++ b/src/sbus/server/sbus_server_match.c @@ -312,7 +312,7 @@ sbus_match_rule_parse(TALLOC_CTX *mem_ctx, ret = split_on_separator(NULL, dbus_rule, ',', true, true, &tokens, &count); if (ret != EOK) { - return ret; + goto done; } ret = sbus_match_rule_parse_keys(mem_ctx, tokens, &sbus_rule); @@ -323,6 +323,7 @@ sbus_match_rule_parse(TALLOC_CTX *mem_ctx, ret = sbus_match_rule_parse_check(sbus_rule); if (ret != EOK) { + talloc_free(sbus_rule); goto done; } @@ -332,9 +333,8 @@ sbus_match_rule_parse(TALLOC_CTX *mem_ctx, done: if (ret != EOK) { - talloc_free(sbus_rule); DEBUG(SSSDBG_OP_FAILURE, "Unable to parse rule [%s] [%d]: %s\n", - dbus_rule, ret, sss_strerror(ret)); + dbus_rule, ret, sss_strerror(ret)); } diff --git a/src/sss_iface/sss_iface_types.c b/src/sss_iface/sss_iface_types.c index bb4fd02..3c0bbc0 100644 --- a/src/sss_iface/sss_iface_types.c +++ b/src/sss_iface/sss_iface_types.c @@ -375,7 +375,6 @@ errno_t sbus_iterator_write_pam_response(DBusMessageIter *iterator, goto done; } - resp = pd->resp_list; for (resp = pd->resp_list; resp != NULL; resp = resp->next) { dbret = dbus_message_iter_open_container(&array_iter, DBUS_TYPE_STRUCT, NULL, &struct_iter); ``` """ See the full comment at https://github.com/SSSD/sssd/pull/601#issuecomment-409511174
_______________________________________________ sssd-devel mailing list -- sssd-devel@lists.fedorahosted.org To unsubscribe send an email to sssd-devel-le...@lists.fedorahosted.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/sssd-devel@lists.fedorahosted.org/message/3XBLCFCGWQG4JA4AAEFZFKN3OPH7ITXP/