(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/plugins/virtual/virtual-sync.c) |
| |
| 1305 | | | virtual_sync_apply_existing_expunges(struct virtual_mailbox *mbox, |
| 1306 | | | struct mailbox_sync_context *sync_ctx) |
| 1307 | | | { |
| 1308 | | | struct index_mailbox_sync_context *isync_ctx = |
| 1309 | | | (struct index_mailbox_sync_context *)sync_ctx; |
| 1310 | | | struct virtual_backend_box *bbox = NULL; |
| 1311 | | | struct seq_range_iter iter; |
| 1312 | | | const struct virtual_mail_index_record *vrec; |
| 1313 | | | const void *data; |
| 1314 | | | bool expunged; |
| 1315 | | | unsigned int n = 0; |
| 1316 | | | uint32_t seq; |
| 1317 | | | |
| 1318 | | | if (isync_ctx->expunges == NULL) |
Event 1:
Skipping " if". isync_ctx->expunges == (void *)0 evaluates to false.
hide
|
|
| 1319 | | | return; |
| 1320 | | | |
| 1321 | | | seq_range_array_iter_init(&iter, isync_ctx->expunges); |
| 1322 | [+] | | while (seq_range_array_iter_nth(&iter, n++, &seq)) { |
 |
| 1323 | | | mail_index_lookup_ext(mbox->ibox.view, seq, |
| 1324 | | | mbox->virtual_ext_id, &data, &expunged); |
| 1325 | | | vrec = data; |
| 1326 | | | |
| 1327 | | | if (bbox == NULL || bbox->mailbox_id != vrec->mailbox_id) { |
Event 12:
Taking true branch. bbox == (void *)0 evaluates to true.
hide
|
|
| 1328 | | | bbox = virtual_backend_box_lookup(mbox, |
Event 15:
bbox is set to virtual_backend_box_lookup(...), which evaluates to NULL. See related event 14.
hide
|
|
| 1329 | [+] | | vrec->mailbox_id); |
 |
| 1330 | [+] | | if (!array_is_created(&bbox->sync_outside_expunges))
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/array.h |
| |
91 | #define array_is_created(array) \ |
92 | array_is_created_i(&(array)->arr) |
| |
|
Event 16:
&bbox->sync_outside_expunges, which evaluates to 60, is passed to array_is_created_i(). See related event 15.
hide
|
|
 |
| |