diff options
| author | eunhhu <[email protected]> | 2026-10-01 16:40:11 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-01 16:40:11 +0100 |
| commit | 1fdf72444cdcf5041022c75ed616a1dcd458175b (patch) | |
| tree | 73e1c333f2a1a1867db18bb346172f054bdf2912 /prototypes | |
| parent | 2963fb5a7deb0cca24c3aa410a11ebc0f8fb559a (diff) | |
| download | pure-1fdf72444cdcf5041022c75ed616a1dcd458175b.tar.gz pure-1fdf72444cdcf5041022c75ed616a1dcd458175b.zip | |
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.
Diffstat (limited to 'prototypes')
| -rw-r--r-- | prototypes/connections/edit-tui.c | 2 | ||||
| -rw-r--r-- | prototypes/connections/server.c | 4 | ||||
| -rw-r--r-- | prototypes/connections/test-async.c | 2 |
3 files changed, 4 insertions, 4 deletions
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; } |
