summaryrefslogtreecommitdiff
path: root/src/irmd/reg
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2026-01-18 14:35:50 +0100
committerSander Vrijders <sander@ouroboros.rocks>2026-01-19 08:31:30 +0100
commitc51611c27f766bb4f413485bf8a12bca02e98669 (patch)
tree61fe6a862d550aa1cbd6c9d7c964f171ebe84afa /src/irmd/reg
parent60b04305d70614580b4f883c0a147507edef3779 (diff)
downloadouroboros-c51611c27f766bb4f413485bf8a12bca02e98669.tar.gz
ouroboros-c51611c27f766bb4f413485bf8a12bca02e98669.zip
lib: Call mlock() on the shared memory buffers
This prevents them from swapping to disk and killing performance. It also enhances security a little bit by reducing the risk of sensitive (even encrypted) data being paged out and captured. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/irmd/reg')
-rw-r--r--src/irmd/reg/flow.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/irmd/reg/flow.c b/src/irmd/reg/flow.c
index 4d091b23..d6f6437f 100644
--- a/src/irmd/reg/flow.c
+++ b/src/irmd/reg/flow.c
@@ -107,6 +107,9 @@ static int create_rbuffs(struct reg_flow * flow,
if (flow->n_rb == NULL)
goto fail_n_rb;
+ if (shm_rbuff_mlock(flow->n_rb) < 0)
+ log_warn("Failed to mlock n_rb for flow %d.", info->id);
+
assert(flow->info.n_1_pid == 0);
assert(flow->n_1_rb == NULL);
@@ -115,6 +118,9 @@ static int create_rbuffs(struct reg_flow * flow,
if (flow->n_1_rb == NULL)
goto fail_n_1_rb;
+ if (shm_rbuff_mlock(flow->n_1_rb) < 0)
+ log_warn("Failed to mlock n_1_rb for flow %d.", info->id);
+
return 0;
fail_n_1_rb: