summaryrefslogtreecommitdiff
path: root/src/irmd/reg
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2026-07-10 17:09:58 +0200
committerSander Vrijders <sander@ouroboros.rocks>2026-07-19 11:44:35 +0200
commitad55e2710a020c0dbdd403040ec19c651efbf3e4 (patch)
tree2a42a41269f1c2c847f9d2aee631ad2a753276cf /src/irmd/reg
parent395c084c54bc57cad618aea430afd06ce24d356b (diff)
downloadouroboros-ad55e2710a020c0dbdd403040ec19c651efbf3e4.tar.gz
ouroboros-ad55e2710a020c0dbdd403040ec19c651efbf3e4.zip
irmd: Fix strdup error checks in registry
reg_proc_add_name() and reg_prog_add_name() checked the already validated entry pointer instead of the fresh strdup. Found by gcc static analyzer. 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/name.c2
-rw-r--r--src/irmd/reg/proc.c3
-rw-r--r--src/irmd/reg/prog.c3
3 files changed, 6 insertions, 2 deletions
diff --git a/src/irmd/reg/name.c b/src/irmd/reg/name.c
index 61a328ec..a3621fc3 100644
--- a/src/irmd/reg/name.c
+++ b/src/irmd/reg/name.c
@@ -157,6 +157,8 @@ static struct prog_entry * __reg_name_get_prog(const struct reg_name * name,
llist_for_each(p, &name->progs) {
struct prog_entry * entry;
entry = list_entry(p, struct prog_entry, next);
+ assert(entry->exec != NULL);
+ assert(entry->exec[0] != NULL);
if (strcmp(entry->exec[0], prog) == 0)
return entry;
}
diff --git a/src/irmd/reg/proc.c b/src/irmd/reg/proc.c
index 8a7e24c9..94ac6b8f 100644
--- a/src/irmd/reg/proc.c
+++ b/src/irmd/reg/proc.c
@@ -119,6 +119,7 @@ static struct name_entry * __reg_proc_get_name(const struct reg_proc * proc,
llist_for_each(p, &proc->names) {
struct name_entry * entry;
entry = list_entry(p, struct name_entry, next);
+ assert(entry->name != NULL);
if (strcmp(entry->name, name) == 0)
return entry;
}
@@ -140,7 +141,7 @@ int reg_proc_add_name(struct reg_proc * proc,
}
entry->name = strdup(name);
- if (entry == NULL) {
+ if (entry->name == NULL) {
log_err("Failed to strdup name.");
goto fail_name;
}
diff --git a/src/irmd/reg/prog.c b/src/irmd/reg/prog.c
index 2d7f9f8d..1e977c89 100644
--- a/src/irmd/reg/prog.c
+++ b/src/irmd/reg/prog.c
@@ -107,6 +107,7 @@ static struct name_entry * __reg_prog_get_name(const struct reg_prog * prog,
llist_for_each(p, &prog->names) {
struct name_entry * entry;
entry = list_entry(p, struct name_entry, next);
+ assert(entry->name != NULL);
if (strcmp(entry->name, name) == 0)
return entry;
}
@@ -128,7 +129,7 @@ int reg_prog_add_name(struct reg_prog * prog,
}
entry->name = strdup(name);
- if (entry == NULL) {
+ if (entry->name == NULL) {
log_err("Failed to strdup name.");
goto fail_name;
}