aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init/init.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/init/init.c b/init/init.c
index 864ee6ab8..c540faa70 100644
--- a/init/init.c
+++ b/init/init.c
@@ -598,7 +598,7 @@ static void new_init_action(uint8_t action_type, const char *command, const char
*/
nextp = &init_action_list;
while ((a = *nextp) != NULL) {
- /* Don't enter action if it's already in the list,
+ /* Don't enter action if it's already in the list.
* This prevents losing running RESPAWNs.
*/
if (strcmp(a->command, command) == 0
@@ -610,14 +610,15 @@ static void new_init_action(uint8_t action_type, const char *command, const char
while (*nextp != NULL)
nextp = &(*nextp)->next;
a->next = NULL;
- break;
+ goto append;
}
nextp = &a->next;
}
- if (!a)
- a = xzalloc(sizeof(*a));
+ a = xzalloc(sizeof(*a));
+
/* Append to the end of the list */
+ append:
*nextp = a;
a->action_type = action_type;
safe_strncpy(a->command, command, sizeof(a->command));