From: Francis Deslauriers Date: Thu, 19 Aug 2021 21:14:46 +0000 (-0400) Subject: Fix: statements with side-effects in assert statements X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=cc3b9644f017a91d347d7a414387292e3175635e Fix: statements with side-effects in assert statements Background ========== When building with the NDEBUG definition the `assert()` statements are removed. Issue ===== Currently, a few `assert()` statements in the code base contain statements that have side effects and removing them changes the behavior for the program. Fix === Extract the statements with side effects out of the `assert()` statements. Signed-off-by: Francis Deslauriers Signed-off-by: Jérémie Galarneau Change-Id: I0b11c8e25c3380563332b4c0fad15f70b09a7335 --- diff --git a/src/bin/lttng-sessiond/agent-thread.c b/src/bin/lttng-sessiond/agent-thread.c index e09796e32..2f0fd6f91 100644 --- a/src/bin/lttng-sessiond/agent-thread.c +++ b/src/bin/lttng-sessiond/agent-thread.c @@ -387,7 +387,8 @@ static void *thread_agent_management(void *data) if (reg_sock) { uint16_t port; - assert(lttcomm_sock_get_port(reg_sock, &port) == 0); + ret = lttcomm_sock_get_port(reg_sock, &port); + assert(ret == 0); ret = write_agent_port(port); if (ret) { diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index c902b2176..ae2db857d 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -1249,6 +1249,7 @@ static struct ust_app_event_notifier_rule *alloc_ust_app_event_notifier_rule( { enum lttng_event_rule_generate_exclusions_status generate_exclusion_status; + enum lttng_condition_status cond_status; struct ust_app_event_notifier_rule *ua_event_notifier_rule; struct lttng_condition *condition = NULL; const struct lttng_event_rule *event_rule = NULL; @@ -1269,9 +1270,9 @@ static struct ust_app_event_notifier_rule *alloc_ust_app_event_notifier_rule( assert(lttng_condition_get_type(condition) == LTTNG_CONDITION_TYPE_EVENT_RULE_MATCHES); - assert(LTTNG_CONDITION_STATUS_OK == - lttng_condition_event_rule_matches_get_rule( - condition, &event_rule)); + cond_status = lttng_condition_event_rule_matches_get_rule( + condition, &event_rule); + assert(cond_status == LTTNG_CONDITION_STATUS_OK); assert(event_rule); ua_event_notifier_rule->error_counter_index = diff --git a/tests/unit/test_fd_tracker.c b/tests/unit/test_fd_tracker.c index 29d50873b..a1e4c017a 100644 --- a/tests/unit/test_fd_tracker.c +++ b/tests/unit/test_fd_tracker.c @@ -394,8 +394,10 @@ void test_unsuspendable_close_untracked(void) ret = pipe(unknown_fds); assert(!ret); - assert(close(unknown_fds[0]) == 0); - assert(close(unknown_fds[1]) == 0); + ret = close(unknown_fds[0]); + assert(ret == 0); + ret = close(unknown_fds[1]); + assert(ret == 0); ret = fd_tracker_open_unsuspendable_fd(tracker, &out_fd, NULL, 1, noop_open, &stdout_fd);