]> git.sur5r.net Git - openocd/commitdiff
help/log.c: better error handling for "log_output"
authorGirts <girtsf@users.noreply.github.com>
Sat, 5 Nov 2016 21:38:55 +0000 (14:38 -0700)
committerFreddie Chopin <freddie.chopin@gmail.com>
Sun, 23 Apr 2017 21:38:42 +0000 (22:38 +0100)
* Close previous log file if one was opened before.
* Return error if opening file fails.

Change-Id: I103025cd86bcac785fe39e13bc7d5f79d78e38e7
Signed-off-by: Girts Folkmanis <opensource@girts.me>
Reviewed-on: http://openocd.zylin.com/3878
Tested-by: jenkins
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
src/helper/log.c

index e7af803c92c7c8ab1fcf035bfbccf560dda1abb7..891613d313cd8bb0a1c651c7ff5fca9e8b2af749 100644 (file)
@@ -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;