diff options
Diffstat (limited to 'src/irmd')
-rw-r--r-- | src/irmd/main.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/irmd/main.c b/src/irmd/main.c index fcd93bd5..df3070f4 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -404,7 +404,7 @@ static int ap_unreg_id(uint32_t reg_ap_id, struct reg_name_entry * rne = NULL; struct list_head * pos = NULL; - rne = find_reg_name_entry_by_id (reg_ap_id); + rne = find_reg_name_entry_by_id(reg_ap_id); if (rne == NULL) return 0; /* no such id */ @@ -522,7 +522,9 @@ static int ap_reg(char * ap_name, return -1; } /* for now, we register single instances */ - reg_name_entry_add_name_instance(strdup(ap_name), instance_name_dup(api)); + reg_name_entry_add_name_instance(strdup(ap_name), + instance_name_dup(api)); + instance_name_destroy(api); return reg_ap_id; } @@ -535,6 +537,8 @@ static int ap_unreg(char * ap_name, struct reg_name_entry * tmp = NULL; instance_name_t * api = instance_name_create(); + if (api == NULL) + return -1; if (instance_name_init_from(api, ap_name, ap_id) == NULL) { instance_name_destroy(api); return -1; @@ -542,10 +546,12 @@ static int ap_unreg(char * ap_name, /* check if ap_name is registered */ tmp = find_reg_name_entry_by_name(api->name); - if (tmp == NULL) + if (tmp == NULL) { + instance_name_destroy(api); return 0; - else + } else { return ap_unreg_id(tmp->reg_ap_id, api->id, difs, len); + } } @@ -629,7 +635,7 @@ int main() struct sigaction sig_act; /* init sig_act */ - memset (&sig_act, 0, sizeof sig_act); + memset(&sig_act, 0, sizeof sig_act); /* install signal traps */ sig_act.sa_sigaction = &irmd_sig_handler; |