From: Girts Date: Sat, 5 Nov 2016 21:38:55 +0000 (-0700) Subject: help/log.c: better error handling for "log_output" X-Git-Tag: v0.11.0-rc1~1422 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=8addd9503eeb7704907d2340378d1200e3bbb99c help/log.c: better error handling for "log_output" * Close previous log file if one was opened before. * Return error if opening file fails. Change-Id: I103025cd86bcac785fe39e13bc7d5f79d78e38e7 Signed-off-by: Girts Folkmanis Reviewed-on: http://openocd.zylin.com/3878 Tested-by: jenkins Reviewed-by: Freddie Chopin --- diff --git a/src/helper/log.c b/src/helper/log.c index e7af803c92..891613d313 100644 --- a/src/helper/log.c +++ b/src/helper/log.c @@ -251,9 +251,15 @@ COMMAND_HANDLER(handle_log_output_command) { if (CMD_ARGC == 1) { FILE *file = fopen(CMD_ARGV[0], "w"); - - if (file) - log_output = file; + if (file == NULL) { + LOG_ERROR("failed to open output log '%s'", CMD_ARGV[0]); + return ERROR_FAIL; + } + if (log_output != stderr && log_output != NULL) { + /* Close previous log file, if it was open and wasn't stderr. */ + fclose(log_output); + } + log_output = file; } return ERROR_OK;