From e7ac328451fa3b3edfbd3658a2365b75d41c0698 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Bollo?= Date: Wed, 6 May 2020 13:48:17 +0200 Subject: [PATCH] afm-urun: Fix infinite loop on start status MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Ensure that there is no infinite loop when waiting for the completion of a status. Bug-AGL: SPEC-3323 Change-Id: I93537e9bbbe8ef357d112bea1cb6201e96d01ebf Signed-off-by: José Bollo --- src/afm-urun.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/afm-urun.c b/src/afm-urun.c index 227fd1d..7f8ad16 100644 --- a/src/afm-urun.c +++ b/src/afm-urun.c @@ -146,15 +146,18 @@ error: static const char *wait_state_stable(int isuser, const char *dpath) { - const char *state; + int trial, count; + const char *state = NULL; - for (;;) { + count = 10; + for (trial = 1 ; trial <= count ; trial++) { state = systemd_unit_state_of_dpath(isuser, dpath); if (state == NULL || state == SysD_State_Active || state == SysD_State_Failed) return state; - /* TODO: sleep */ + sleep(1); } + return state; } /* -- 2.16.6