]> granicus.if.org Git - check/commitdiff
Print an error if nothing is read from punpack()
authorbrarcher <brarcher@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Sat, 28 Sep 2013 03:10:42 +0000 (03:10 +0000)
committerbrarcher <brarcher@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Sat, 28 Sep 2013 03:10:42 +0000 (03:10 +0000)
There is some issue with MinGW-w64 builds run on wine, if multiple
unit test programs are run concurrently. Sometimes they will fail
to get something from punpack. It may be a failure to read the file,
or the file, or some other issue.

When this happens, later in receive_test_result the rmesg is free'd,
but only by freeing its elements first, which causes a segfault.

Instead of crashing, check should error out gracefully.

git-svn-id: svn+ssh://svn.code.sf.net/p/check/code/trunk@813 64e312b2-a51f-0410-8e61-82d0ca0eb02a

src/check_msg.c

index fcb63524d185c2a7345a36310619cedeeee09677..a011c3d4d98c5d593e41d4e6564a38fec2d5aad1 100644 (file)
@@ -121,6 +121,12 @@ TestResult *receive_test_result (int waserror)
     eprintf ("Error in call to get_pipe",__FILE__, __LINE__ - 2);
   rewind(fp);
   rmsg = punpack (fileno(fp));
+
+  if(rmsg == NULL)
+  {
+         eprintf ("Error in call to punpack",__FILE__, __LINE__ - 4);
+  }
+
   teardown_pipe();
   setup_pipe();