(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/login-common/ssl-proxy-openssl.c) |
| |
| 294 | | | static void plain_write(struct ssl_proxy *proxy) |
| 295 | | | { |
| 296 | | | ssize_t ret; |
| 297 | | | |
| 298 | | | proxy->refcount++; |
| 299 | | | |
| 300 | | | ret = net_transmit(proxy->fd_plain, proxy->plainout_buf, |
| 301 | | | proxy->plainout_size); |
| 302 | | | if (ret < 0) |
Event 1:
Taking true branch. ret < 0 evaluates to true.
hide
|
|
| 303 | [+] | | ssl_proxy_destroy(proxy); |
Event 2:
proxy is passed to ssl_proxy_destroy().
hide
|
|
 |
| 304 | | | else { |
| 305 | | | proxy->plainout_size -= ret; |
| 306 | | | memmove(proxy->plainout_buf, proxy->plainout_buf + ret, |
| 307 | | | proxy->plainout_size); |
| 308 | | | |
| 309 | | | if (proxy->plainout_size > 0) { |
| 310 | | | if (proxy->io_plain_write == NULL) { |
| 311 | | | proxy->io_plain_write = |
| 312 | | | io_add(proxy->fd_plain, IO_WRITE,
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/ioloop.h |
| |
50 | #define io_add(fd, condition, callback, context) \ |
51 | CONTEXT_CALLBACK(io_add, io_callback_t, \ |
52 | callback, context, fd, condition) |
| |
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/macros.h |
| |
146 | # define CONTEXT_CALLBACK(name, callback_type, callback, context, ...) \ |
147 | ({(void)(1 ? 0 : callback(context)); \ |
148 | name(__VA_ARGS__, (callback_type *)callback, context); }) |
| |
|
| 313 | | | plain_write, proxy); |
| 314 | | | } |
| 315 | | | } else { |
| 316 | | | if (proxy->io_plain_write != NULL) |
| 317 | | | io_remove(&proxy->io_plain_write); |
| 318 | | | } |
| 319 | | | |
| 320 | | | ssl_set_io(proxy, SSL_ADD_INPUT); |
| 321 | | | if (SSL_pending(proxy->ssl) > 0) |
| 322 | | | ssl_read(proxy); |
| 323 | | | } |
| 324 | | | |
| 325 | [+] | | ssl_proxy_unref(proxy); |
Event 24:
proxy is passed to ssl_proxy_unref().
hide
|
|
 |
| |