From 5cfa3bcc22708571b674a40f1d9cdfa0657ab33e Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 25 Sep 2015 20:08:51 +0200 Subject: [PATCH] MINOR: cli: do not call the release handler on internal error. It's dangerous to call this on internal state error, because it risks to perform a double-free. This can only happen when a state is not handled. Note that the switch/case currently doesn't offer any option for missed states since they're all declared. Better fix this anyway. The fix was tested by commenting out some entries in the switch/case. --- src/dumpstats.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/dumpstats.c b/src/dumpstats.c index 87e62eb7f..bdfb7e301 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -2554,8 +2554,7 @@ static void cli_io_handler(struct appctx *appctx) break; #endif default: /* abnormal state */ - cli_release_handler(appctx); - appctx->st0 = STAT_CLI_PROMPT; + si->flags |= SI_FL_ERR; break; }