From f00765f00be2e625acc3aa76f5ff72ec2ba7fcbe Mon Sep 17 00:00:00 2001 From: Omar Kallel Date: Sat, 13 Nov 2021 10:53:42 +0100 Subject: [PATCH] Ticket refs #6311: icwmpd: crash during upgrade or factory reset --- event.c | 7 ++++--- ubus.c | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/event.c b/event.c index be6648d..5bd3376 100644 --- a/event.c +++ b/event.c @@ -159,15 +159,16 @@ int event_remove_noretry_event_container(struct session *session, struct cwmp *c list_for_each_safe (ilist, q, &(session->head_event_container)) { event_container = list_entry(ilist, struct event_container, list); + + if (EVENT_CONST[event_container->code].CODE[0] == '6') + cwmp->cwmp_cr_event = 1; + if (EVENT_CONST[event_container->code].RETRY == 0) { free(event_container->command_key); cwmp_free_all_dm_parameter_list(&(event_container->head_dm_parameter)); list_del(&(event_container->list)); free(event_container); } - - if (EVENT_CONST[event_container->code].CODE[0] == '6') - cwmp->cwmp_cr_event = 1; } return CWMP_OK; } diff --git a/ubus.c b/ubus.c index 6e220fd..d92da75 100755 --- a/ubus.c +++ b/ubus.c @@ -111,13 +111,13 @@ static int cwmp_handle_command(struct ubus_context *ctx, struct ubus_object *obj pthread_cond_signal(&threshold_apply_schedule_download); pthread_cond_signal(&threshold_upload); - uloop_end(); - shutdown(cwmp_main.cr_socket_desc, SHUT_RDWR); if (!signal_exit) kill(getpid(), SIGTERM); + uloop_end(); + if (snprintf(info, sizeof(info), "icwmpd daemon stopped") == -1) return -1; } else {