]> granicus.if.org Git - check/commitdiff
* fix dead assignments and possible null pointer dereference
authorzdenekc <zdenekc@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Wed, 1 Jun 2011 09:42:35 +0000 (09:42 +0000)
committerzdenekc <zdenekc@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Wed, 1 Jun 2011 09:42:35 +0000 (09:42 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/check/code/trunk@604 64e312b2-a51f-0410-8e61-82d0ca0eb02a

NEWS
src/check_log.c
src/check_run.c

diff --git a/NEWS b/NEWS
index 0b4a56b45246c17b67f8e7c3dec0326da42d4f3c..07402d152887ca0a51a636599c1fab255017e217 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,8 @@ In development.
 * Added longjmp to fail function to ensure that no code will be executed in test
   function after failed assertion
 
+* Fix dead assignments and several possible NULL pointer dereferences
+
 Tue, Sep 22, 2009: Released Check 0.9.8
   based on r559 (2009-09-23 21:00).
 
index 9b735e11409a1f21c80c4fe0a2919335e7c4761c..bec5aa4b2ef435921ec7463a932b3f7d4f3743c3 100644 (file)
@@ -169,7 +169,6 @@ void stdout_lfun (SRunner *sr, FILE *file, enum print_output printmode,
     }
     break;
   case CLEND_S:
-    s = obj;
     break;
   case CLSTART_T:
     break;
@@ -204,7 +203,6 @@ void lfile_lfun (SRunner *sr, FILE *file, enum print_output printmode CK_ATTRIBU
     srunner_fprint (file, sr, CK_MINIMAL);
     break;
   case CLEND_S:
-    s = obj;
     break;
   case CLSTART_T:
     break;
@@ -260,7 +258,6 @@ void xml_lfun (SRunner *sr CK_ATTRIBUTE_UNUSED, FILE *file, enum print_output pr
     break;
   case CLEND_S:
     fprintf(file, "  </suite>\n");
-    s = obj;
     break;
   case CLSTART_T:
     break;
index 979a748de4c0aa6d3bcf8eaf913f203dbf722484..81bbbcd2f1635cd09aeeb8386a4b7e662fbb3dbe 100644 (file)
@@ -187,8 +187,11 @@ static void srunner_iterate_tcase_tfuns (SRunner *sr, TCase *tc)
       default:
         eprintf("Bad fork status in SRunner", __FILE__, __LINE__);
       }
-      srunner_add_failure (sr, tr);
-      log_test_end(sr, tr);
+
+      if ( NULL != tr ) {
+        srunner_add_failure (sr, tr);
+        log_test_end(sr, tr);
+      }
     }
   }
 }  
@@ -333,12 +336,14 @@ static TestResult *receive_result_info_nofork (const char *tcname,
   TestResult *tr;
 
   tr = receive_test_result(0);
-  if (tr == NULL)
+  if (tr == NULL) {
     eprintf("Failed to receive test result", __FILE__, __LINE__);
-  tr->tcname = tcname;
-  tr->tname = tname;
-  tr->iter = iter;
-  set_nofork_info(tr);
+  } else {
+    tr->tcname = tcname;
+    tr->tname = tname;
+    tr->iter = iter;
+    set_nofork_info(tr);
+  }
 
   return tr;
 }
@@ -401,12 +406,14 @@ static TestResult *receive_result_info_fork (const char *tcname,
   TestResult *tr;
 
   tr = receive_test_result(waserror(status, expected_signal));
-  if (tr == NULL)
+  if (tr == NULL) {
     eprintf("Failed to receive test result", __FILE__, __LINE__);
-  tr->tcname = tcname;
-  tr->tname = tname;
-  tr->iter = iter;
-  set_fork_info(tr, status, expected_signal, allowed_exit_value);
+  } else {
+    tr->tcname = tcname;
+    tr->tname = tname;
+    tr->iter = iter;
+    set_fork_info(tr, status, expected_signal, allowed_exit_value);
+  }
 
   return tr;
 }