From 1fdf72444cdcf5041022c75ed616a1dcd458175b Mon Sep 17 00:00:00 2001 From: eunhhu Date: Thu, 1 Oct 2026 16:40:11 +0100 Subject: Look at a wake write's result in the prototype, as fortified builds ask Ubuntu's gcc defines _FORTIFY_SOURCE, which marks write's result as one to use, and a (void) cast does not quiet it: the prototype did not build there (research 029). Debian's does not define it; the Pi gives the same error with -D_FORTIFY_SOURCE=3. --- prototypes/connections/edit-tui.c | 2 +- prototypes/connections/server.c | 4 ++-- prototypes/connections/test-async.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'prototypes/connections') diff --git a/prototypes/connections/edit-tui.c b/prototypes/connections/edit-tui.c index d7b1442..2b320ee 100644 --- a/prototypes/connections/edit-tui.c +++ b/prototypes/connections/edit-tui.c @@ -55,7 +55,7 @@ static void wake_signal(int signal_number) { else stopping = 1; if (wake_write >= 0) { const char byte = 1; - (void)write((int)wake_write, &byte, 1); + if (write((int)wake_write, &byte, 1) < 0) { /* full: its reader is woken already */ } } errno = saved_errno; } diff --git a/prototypes/connections/server.c b/prototypes/connections/server.c index 505bb71..af4ddd4 100644 --- a/prototypes/connections/server.c +++ b/prototypes/connections/server.c @@ -88,7 +88,7 @@ static void stop_server(int sig) { stopping = 1; if (wake_write >= 0) { const char byte = 1; - (void)write((int)wake_write, &byte, 1); + if (write((int)wake_write, &byte, 1) < 0) { /* full: its reader is woken already */ } } errno = saved_errno; } @@ -217,7 +217,7 @@ static void *effect_worker(void *context) { job->state = JOB_DONE; pthread_mutex_unlock(&server->job_mutex); const char byte = 1; - (void)write(server->effect_wake, &byte, 1); + if (write(server->effect_wake, &byte, 1) < 0) { /* full: its reader is woken already */ } } } diff --git a/prototypes/connections/test-async.c b/prototypes/connections/test-async.c index ad5f15a..e31b1d7 100644 --- a/prototypes/connections/test-async.c +++ b/prototypes/connections/test-async.c @@ -38,7 +38,7 @@ static void *write_after_signal(void *context) { worker->effect.value, &worker->reply, &worker->revision); } - (void)write(worker->done, &byte, 1); + if (write(worker->done, &byte, 1) < 0) { /* full: its reader is woken already */ } return NULL; } -- cgit v1.2.3