aboutsummaryrefslogtreecommitdiffstats
path: root/prototypes
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-10-01 16:40:11 +0100
committereunhhu <[email protected]>2026-10-01 16:40:11 +0100
commit1fdf72444cdcf5041022c75ed616a1dcd458175b (patch)
tree73e1c333f2a1a1867db18bb346172f054bdf2912 /prototypes
parent2963fb5a7deb0cca24c3aa410a11ebc0f8fb559a (diff)
downloadpure-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.c2
-rw-r--r--prototypes/connections/server.c4
-rw-r--r--prototypes/connections/test-async.c2
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;
}