summaryrefslogtreecommitdiff
path: root/src/irmd/registry.h
diff options
context:
space:
mode:
authordimitri staessens <[email protected]>2017-02-04 20:08:02 +0100
committerdimitri staessens <[email protected]>2017-02-04 20:11:27 +0100
commit49fb847ff3dc8b7de91eb3a54524e60b145f9bf4 (patch)
tree96e97ca4e3c4dbeb83bf2851cdc41442e7f0720d /src/irmd/registry.h
parent9301dcbc95c95a82eba9e831f49253dcad73abb2 (diff)
downloadouroboros-49fb847ff3dc8b7de91eb3a54524e60b145f9bf4.tar.gz
ouroboros-49fb847ff3dc8b7de91eb3a54524e60b145f9bf4.zip
irmd: Handle death of IPCP gracefully
If an IPCP SEGVs abruptly, the sanitizer in the IRMd would also cause a SEGV because of looping over a registry linked list inside another safe loop over the same list. A function is added to the registry to avoid this.
Diffstat (limited to 'src/irmd/registry.h')
-rw-r--r--src/irmd/registry.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/irmd/registry.h b/src/irmd/registry.h
index bdd5cad0..7713e278 100644
--- a/src/irmd/registry.h
+++ b/src/irmd/registry.h
@@ -84,6 +84,9 @@ int reg_entry_add_api(struct reg_entry * e,
void reg_entry_del_api(struct reg_entry * e,
pid_t api);
+void reg_entry_del_pid_el(struct reg_entry * e,
+ struct pid_el * a);
+
pid_t reg_entry_get_api(struct reg_entry * e);
enum reg_name_state reg_entry_get_state(struct reg_entry * e);