(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/pop3-login/client-authenticate.c) |
| |
| 218 | | | static void sasl_callback(struct client *_client, enum sasl_server_reply reply, |
| 219 | | | const char *data, const char *const *args) |
| 220 | | | { |
| 221 | | | struct pop3_client *client = (struct pop3_client *)_client; |
| 222 | | | struct const_iovec iov[3]; |
| 223 | | | const char *msg; |
| 224 | | | size_t data_len; |
| 225 | | | bool nodelay; |
| 226 | | | |
| 227 | | | i_assert(!client->destroyed ||
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/macros.h |
| |
189 | #define i_assert(expr) STMT_START{ \ |
190 | if (unlikely(!(expr))) \ |
191 | i_panic("file %s: line %d (%s): assertion failed: (%s)", \ |
192 | __FILE__, \ |
193 | __LINE__, \ |
194 | __PRETTY_FUNCTION__, \ |
195 | #expr); }STMT_END |
| |
|
| 228 | | | reply == SASL_SERVER_REPLY_CLIENT_ERROR || |
| 229 | | | reply == SASL_SERVER_REPLY_MASTER_FAILED); |
Event 1:
Skipping " if". client->destroyed evaluates to false.
hide
Event 2:
Skipping " if". !(!client->destroyed || reply == SASL_SERVER_REPLY_CLIENT_ERROR || reply == SASL_SERVER_REPLY_MASTER_FAILED) evaluates to false.
hide
Event 3:
Skipping " if". !!(!client->destroyed || reply == SASL_SERVER_REPLY_CLIENT_ERROR || reply == SASL_SERVER_REPLY_MASTER_FAILED) evaluates to true.
hide
Event 4:
Skipping " if". !!!(!client->destroyed || reply == SASL_SERVER_REPLY_CLIENT_ERROR || reply == SASL_SERVER_REPLY_MASTER_FAILED) evaluates to false.
hide
Event 5:
Skipping " if". __builtin_expect(...) evaluates to false.
hide
|
|
| 230 | | | |
| 231 | | | switch (reply) { |
Event 6:
reply evaluates to 2.
hide
|
|
| 232 | | | case SASL_SERVER_REPLY_SUCCESS: |
| 233 | | | if (args != NULL) { |
| 234 | | | if (client_handle_args(client, args, TRUE, &nodelay)) |
| 235 | | | break; |
| 236 | | | } |
| 237 | | | |
| 238 | | | client_destroy_success(client, "Login"); |
| 239 | | | break; |
| 240 | | | case SASL_SERVER_REPLY_AUTH_FAILED: |
| 241 | | | case SASL_SERVER_REPLY_CLIENT_ERROR: |
| 242 | | | if (args != NULL) { |
Event 7:
Skipping " if". args != (void *)0 evaluates to false.
hide
|
|
| 243 | | | if (client_handle_args(client, args, FALSE, &nodelay)) |
| 244 | | | break; |
| 245 | | | } |
| 246 | | | |
| 247 | | | msg = t_strconcat("-ERR ", data != NULL ? |
Event 8:
data != (void *)0 evaluates to true.
hide
|
|
| 248 | | | data : AUTH_FAILED_MSG, NULL); |
| 249 | | | client_send_line(client, msg); |
| 250 | | | |
| 251 | | | if (!client->destroyed) |
Event 9:
Taking true branch. client->destroyed evaluates to false.
hide
|
|
| 252 | | | client_auth_failed(client, nodelay); |
| |