git-svn: trunk@4784
Török Edvin authored on 2009/02/14 01:52:15... | ... |
@@ -1,3 +1,10 @@ |
1 |
+Fri Feb 13 19:21:24 EET 2009 (edwin) |
|
2 |
+------------------------------------ |
|
3 |
+ * shared/output.c, unit_tests/check_clamd.c: mdprintf was also |
|
4 |
+ taking %f and %l, and they have different size than int. Make the |
|
5 |
+ ARGLEN get the correct vaarg types, otherwise it was popping off the |
|
6 |
+ stack an item of the wrong size! |
|
7 |
+ |
|
1 | 8 |
Fri Feb 13 16:48:01 EET 2009 (edwin) |
2 | 9 |
------------------------------------ |
3 | 10 |
* clamd/server-th.c: fix nFILDES command |
... | ... |
@@ -104,6 +104,14 @@ short int mprintf_disabled = 0, mprintf_verbose = 0, mprintf_quiet = 0, |
104 | 104 |
if(pt) \ |
105 | 105 |
arglen += strlen(pt); \ |
106 | 106 |
break; \ |
107 |
+ case 'f': \ |
|
108 |
+ va_arg(args, double); \ |
|
109 |
+ arglen += 25; \ |
|
110 |
+ break; \ |
|
111 |
+ case 'l': \ |
|
112 |
+ va_arg(args, long); \ |
|
113 |
+ arglen += 20; \ |
|
114 |
+ break; \ |
|
107 | 115 |
default: \ |
108 | 116 |
va_arg(args, int); \ |
109 | 117 |
arglen += 10; \ |
... | ... |
@@ -134,6 +134,32 @@ END_TEST |
134 | 134 |
|
135 | 135 |
#define EXPECT_INSTREAM "stream: ClamAV-Test-File.UNOFFICIAL FOUND\n" |
136 | 136 |
|
137 |
+#define STATS_REPLY "POOLS: 1\n\nSTATE: VALID PRIMARY\n" |
|
138 |
+START_TEST (tc_stats) |
|
139 |
+{ |
|
140 |
+ char *recvdata; |
|
141 |
+ size_t len = strlen("nSTATS\n"); |
|
142 |
+ int rc; |
|
143 |
+ |
|
144 |
+ conn_setup(); |
|
145 |
+ rc = send(sockd, "nSTATS\n", len, 0); |
|
146 |
+ fail_unless_fmt((size_t)rc == len, "Unable to send(): %s\n", strerror(errno)); |
|
147 |
+ |
|
148 |
+ recvdata = recvfull(sockd, &len); |
|
149 |
+ |
|
150 |
+ fail_unless_fmt(len > strlen(STATS_REPLY), "Reply has wrong size: %lu, minimum %lu, reply: %s\n", |
|
151 |
+ len, strlen(STATS_REPLY), recvdata); |
|
152 |
+ |
|
153 |
+ if (len > strlen(STATS_REPLY)) |
|
154 |
+ len = strlen(STATS_REPLY); |
|
155 |
+ rc = strncmp(recvdata, STATS_REPLY, len); |
|
156 |
+ |
|
157 |
+ fail_unless_fmt(rc == 0, "Wrong reply: %s\n", recvdata); |
|
158 |
+ free(recvdata); |
|
159 |
+ conn_teardown(); |
|
160 |
+} |
|
161 |
+END_TEST |
|
162 |
+ |
|
137 | 163 |
START_TEST (tc_instream) |
138 | 164 |
{ |
139 | 165 |
int fd, nread, rc; |
... | ... |
@@ -185,7 +211,7 @@ static Suite *test_clamd_suite(void) |
185 | 185 |
suite_add_tcase(s, tc_commands); |
186 | 186 |
tcase_add_loop_test(tc_commands, test_basic_commands, 0, sizeof(basic_tests)/sizeof(basic_tests[0])); |
187 | 187 |
tcase_add_test(tc_commands, tc_instream); |
188 |
- |
|
188 |
+ tcase_add_test(tc_commands, tc_stats); |
|
189 | 189 |
return s; |
190 | 190 |
} |
191 | 191 |
|