From f5f119f51a0241f8bbb1f8710fb37119b375539b Mon Sep 17 00:00:00 2001 From: osch Date: Tue, 4 Sep 2018 21:33:12 +0200 Subject: avoid NULL as parameter to fputs() --- .travis.yml | 1 + appveyor.yml | 1 + lakefile | 1 + src/llthread.c | 3 ++- test/test_error.lua | 17 +++++++++++++++++ 5 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 test/test_error.lua diff --git a/.travis.yml b/.travis.yml index 19f6f5b..1f52bf6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,6 +58,7 @@ script: - lua test_threads_attr.lua - lua test_integer.lua - lua test_interrupt.lua + - lua test_error.lua # - lua test_register_llthreads.lua notifications: diff --git a/appveyor.yml b/appveyor.yml index 46a3235..b405930 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -73,6 +73,7 @@ test_script: - lua test_threads_attr.lua - lua test_integer.lua - lua test_interrupt.lua + - lua test_error.lua # - lua test_register_llthreads.lua after_test: diff --git a/lakefile b/lakefile index af9661e..a5cb006 100644 --- a/lakefile +++ b/lakefile @@ -45,6 +45,7 @@ target('test', install, function() run_test('test_threads_ex_opt_2.lua') run_test('test_threads_attr.lua') run_test('test_interrupt.lua') + run_test('test_error.lua') if not test_summary() then diff --git a/src/llthread.c b/src/llthread.c index 66efe7c..57f8dc3 100644 --- a/src/llthread.c +++ b/src/llthread.c @@ -135,7 +135,8 @@ void llthread_log(lua_State *L, const char *hdr, const char *msg){ if(lua_isnil(L, -1)){ lua_pop(L, 1); fputs(hdr, stderr); - fputs(msg, stderr); + if (msg) fputs(msg, stderr); + else fputs("(no error message)", stderr); fputc('\n', stderr); fflush(stderr); return; diff --git a/test/test_error.lua b/test/test_error.lua new file mode 100644 index 0000000..1407ea8 --- /dev/null +++ b/test/test_error.lua @@ -0,0 +1,17 @@ +local llthreads = require"llthreads" +local utils = require "utils" + +local include = utils.thread_init .. [[ +local llthreads = require"llthreads" +]] + +local thread = llthreads.new(include .. [[ + error({}) +]]) + +thread:start() +local ok, err = thread:join() +print(ok, err) +assert(not ok) +print("Done!") + -- cgit v1.2.3-55-g6feb