Fixes file descriptor leak reported in #22576.
static int test_fd[2];
static test_callback_recv_t callback_recv;
static be32_t xid;
-static sd_event_source *test_hangcheck;
-
-static int test_dhcp_hangcheck(sd_event_source *s, uint64_t usec, void *userdata) {
- assert_not_reached();
-
- return 0;
-}
static void test_request_basic(sd_event *e) {
int r;
callback_recv = test_addr_acq_recv_discover;
- assert_se(sd_event_add_time_relative(
- e, &test_hangcheck,
- clock_boottime_or_monotonic(),
- 2 * USEC_PER_SEC, 0,
- test_dhcp_hangcheck, NULL) >= 0);
+ assert_se(sd_event_add_time_relative(e, NULL, clock_boottime_or_monotonic(),
+ 2 * USEC_PER_SEC, 0,
+ NULL, INT_TO_PTR(-ETIMEDOUT)) >= 0);
res = sd_dhcp_client_start(client);
assert_se(IN_SET(res, 0, -EINPROGRESS));
assert_se(sd_event_loop(e) >= 0);
- test_hangcheck = sd_event_source_unref(test_hangcheck);
-
assert_se(sd_dhcp_client_set_callback(client, NULL, NULL) >= 0);
assert_se(sd_dhcp_client_stop(client) >= 0);
sd_dhcp_client_unref(client);
assert_se(sd_event_new(&e) >= 0);
assert_se(sd_event_add_time_relative(e, NULL, clock_boottime_or_monotonic(),
2 * USEC_PER_SEC, 0,
- NULL, INT_TO_PTR(ETIMEDOUT)) >= 0);
+ NULL, INT_TO_PTR(-ETIMEDOUT)) >= 0);
assert_se(sd_dhcp6_client_new(&client) >= 0);
assert_se(sd_dhcp6_client_attach_event(client, e, 0) >= 0);
0x72, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
-static sd_event_source *test_hangcheck;
static bool test_stopped;
static int test_fd[2];
static sd_event_source *recv_router_advertisement;
static const char *test_dnssl[] = { "lab.intra",
NULL };
-static int test_rs_hangcheck(sd_event_source *s, uint64_t usec,
- void *userdata) {
- assert_se(false);
-
- return 0;
-}
-
static void test_radv_prefix(void) {
sd_radv_prefix *p;
assert_se(sd_event_add_io(e, &recv_router_advertisement, test_fd[0],
EPOLLIN, radv_recv, ra) >= 0);
- assert_se(sd_event_add_time_relative(
- e, &test_hangcheck, clock_boottime_or_monotonic(),
- 2 *USEC_PER_SEC, 0,
- test_rs_hangcheck, NULL) >= 0);
+ assert_se(sd_event_add_time_relative(e, NULL, clock_boottime_or_monotonic(),
+ 2 * USEC_PER_SEC, 0,
+ NULL, INT_TO_PTR(-ETIMEDOUT)) >= 0);
assert_se(sd_radv_start(ra) >= 0);
- sd_event_loop(e);
-
- test_hangcheck = sd_event_source_unref(test_hangcheck);
+ assert_se(sd_event_loop(e) >= 0);
ra = sd_radv_unref(ra);
assert_se(!ra);
};
static bool verbose = false;
-static sd_event_source *test_hangcheck;
static int test_fd[2];
static sd_ndisc *test_timeout_nd;
}
}
-static int test_rs_hangcheck(sd_event_source *s, uint64_t usec,
- void *userdata) {
- assert_se(false);
-
- return 0;
-}
-
int icmp6_bind_router_solicitation(int ifindex) {
assert_se(ifindex == 42);
assert_se(sd_ndisc_set_mac(nd, &mac_addr) >= 0);
assert_se(sd_ndisc_set_callback(nd, test_callback, e) >= 0);
- assert_se(sd_event_add_time_relative(
- e, &test_hangcheck, clock_boottime_or_monotonic(),
- 30 * USEC_PER_SEC, 0,
- test_rs_hangcheck, NULL) >= 0);
+ assert_se(sd_event_add_time_relative(e, NULL, clock_boottime_or_monotonic(),
+ 30 * USEC_PER_SEC, 0,
+ NULL, INT_TO_PTR(-ETIMEDOUT)) >= 0);
assert_se(sd_ndisc_stop(nd) >= 0);
assert_se(sd_ndisc_start(nd) >= 0);
assert_se(sd_ndisc_start(nd) >= 0);
- sd_event_loop(e);
-
- test_hangcheck = sd_event_source_unref(test_hangcheck);
+ assert_se(sd_event_loop(e) >= 0);
nd = sd_ndisc_unref(nd);
assert_se(!nd);
assert_se(sd_ndisc_set_ifindex(nd, 42) >= 0);
assert_se(sd_ndisc_set_mac(nd, &mac_addr) >= 0);
- assert_se(sd_event_add_time_relative(
- e, &test_hangcheck, clock_boottime_or_monotonic(),
- 30 * USEC_PER_SEC, 0,
- test_rs_hangcheck, NULL) >= 0);
+ assert_se(sd_event_add_time_relative(e, NULL, clock_boottime_or_monotonic(),
+ 30 * USEC_PER_SEC, 0,
+ NULL, INT_TO_PTR(-ETIMEDOUT)) >= 0);
assert_se(sd_ndisc_start(nd) >= 0);
- sd_event_loop(e);
-
- test_hangcheck = sd_event_source_unref(test_hangcheck);
+ assert_se(sd_event_loop(e) >= 0);
nd = sd_ndisc_unref(nd);