| 
														
															@@ -634,9 +634,16 @@ test_util_time(void *arg) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             parse_rfc1123_time("Wed, 30 Ene 2011 23:59:59 GMT", &t_res)); 
														 | 
														
														 | 
														
															             parse_rfc1123_time("Wed, 30 Ene 2011 23:59:59 GMT", &t_res)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   tt_int_op(-1,OP_EQ, 
														 | 
														
														 | 
														
															   tt_int_op(-1,OP_EQ, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             parse_rfc1123_time("Wed, 30 Mar 2011 23:59:59 GM", &t_res)); 
														 | 
														
														 | 
														
															             parse_rfc1123_time("Wed, 30 Mar 2011 23:59:59 GM", &t_res)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_int_op(-1,OP_EQ, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            parse_rfc1123_time("Wed, 30 Mar 1900 23:59:59 GMT", &t_res)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  /* Leap year. */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   tt_int_op(-1,OP_EQ, 
														 | 
														
														 | 
														
															   tt_int_op(-1,OP_EQ, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             parse_rfc1123_time("Wed, 29 Feb 2011 16:00:00 GMT", &t_res)); 
														 | 
														
														 | 
														
															             parse_rfc1123_time("Wed, 29 Feb 2011 16:00:00 GMT", &t_res)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_int_op(0,OP_EQ, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            parse_rfc1123_time("Wed, 29 Feb 2012 16:00:00 GMT", &t_res)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  /* Leap second plus one */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   tt_int_op(-1,OP_EQ, 
														 | 
														
														 | 
														
															   tt_int_op(-1,OP_EQ, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             parse_rfc1123_time("Wed, 30 Mar 2011 23:59:61 GMT", &t_res)); 
														 | 
														
														 | 
														
															             parse_rfc1123_time("Wed, 30 Mar 2011 23:59:61 GMT", &t_res)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -4815,6 +4822,36 @@ test_util_pwdb(void *arg) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #endif 
														 | 
														
														 | 
														
															 #endif 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+static void 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+test_util_calloc_check(void *arg) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (void) arg; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  /* Easy cases that are good. */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(size_mul_check__(0,0)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(size_mul_check__(0,100)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(size_mul_check__(100,0)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(size_mul_check__(100,100)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  /* Harder cases that are still good. */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(size_mul_check__(SIZE_MAX, 1)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(size_mul_check__(1, SIZE_MAX)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(size_mul_check__(SIZE_MAX / 10, 9)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(size_mul_check__(11, SIZE_MAX / 12)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  const size_t sqrt_size_max_p1 = ((size_t)1) << (sizeof(size_t) * 4); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(size_mul_check__(sqrt_size_max_p1, sqrt_size_max_p1 - 1)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  /* Cases that overflow */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(! size_mul_check__(SIZE_MAX, 2)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(! size_mul_check__(2, SIZE_MAX)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(! size_mul_check__(SIZE_MAX / 10, 11)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(! size_mul_check__(11, SIZE_MAX / 10)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(! size_mul_check__(SIZE_MAX / 8, 9)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  tt_assert(! size_mul_check__(sqrt_size_max_p1, sqrt_size_max_p1)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ done: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  ; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #define UTIL_LEGACY(name)                                               \ 
														 | 
														
														 | 
														
															 #define UTIL_LEGACY(name)                                               \ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   { #name, test_util_ ## name , 0, NULL, NULL } 
														 | 
														
														 | 
														
															   { #name, test_util_ ## name , 0, NULL, NULL } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -4900,6 +4937,7 @@ struct testcase_t util_tests[] = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   UTIL_TEST(get_avail_disk_space, 0), 
														 | 
														
														 | 
														
															   UTIL_TEST(get_avail_disk_space, 0), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   UTIL_TEST(touch_file, 0), 
														 | 
														
														 | 
														
															   UTIL_TEST(touch_file, 0), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   UTIL_TEST_NO_WIN(pwdb, TT_FORK), 
														 | 
														
														 | 
														
															   UTIL_TEST_NO_WIN(pwdb, TT_FORK), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  UTIL_TEST(calloc_check, 0), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   END_OF_TESTCASES 
														 | 
														
														 | 
														
															   END_OF_TESTCASES 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 |