(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/plugins/virtual/virtual-storage.c) |
| |
| 202 | | | static int virtual_mailboxes_open(struct virtual_mailbox *mbox, |
| 203 | | | enum mailbox_open_flags open_flags) |
| 204 | | | { |
| 205 | | | struct mail_user *user = mbox->storage->storage.ns->user; |
| 206 | | | struct virtual_backend_box *const *bboxes; |
| 207 | | | struct mail_namespace *ns; |
| 208 | | | struct mail_storage *storage; |
| 209 | | | unsigned int i, count; |
| 210 | | | enum mail_error error; |
| 211 | | | const char *str, *mailbox; |
| 212 | | | |
| 213 | | | open_flags |= MAILBOX_OPEN_KEEP_RECENT; |
| 214 | | | |
| 215 | [+] | | bboxes = array_get(&mbox->backend_boxes, &count);
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/array.h |
| |
156 | #define array_get(array, count) \ |
157 | ARRAY_TYPE_CAST_CONST(array)array_get_i(&(array)->arr, count) |
| |
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/array.h |
| |
43 | # define ARRAY_TYPE_CAST_CONST(array) \ |
44 | (typeof(*(array)->v)) |
| |
|
 |
| 216 | | | for (i = 0; i < count; ) { |
Event 1:
Entering loop body. i < count evaluates to true.
hide
|
|
| 217 | | | mailbox = bboxes[i]->name; |
| 218 | | | ns = mail_namespace_find(user->namespaces, &mailbox); |
| 219 | | | storage = ns->storage; |
| 220 | | | bboxes[i]->box = mailbox_open(&storage, mailbox, |
Event 2:
&storage is passed to mailbox_open() as the first argument.
hide
|
|
| 221 | [+] | | NULL, open_flags); |
 |
| 222 | | | |
| 223 | | | if (bboxes[i]->box == NULL) { |
Event 16:
Taking true branch. bboxes[i]->box == (void *)0 evaluates to true.
hide
|
|
| 224 | [+] | | str = mail_storage_get_last_error(storage, &error); |
Event 17:
storage, which evaluates to the value assigned to storage at mail-storage.c:464, is passed to mail_storage_get_last_error() as the first argument. See related events 8 and 10.
hide
|
|
 |
| 225 | | | if (bboxes[i]->wildcard && |
Event 23:
Skipping " if". - bboxes[i]->wildcard evaluates to true.
- error == MAIL_ERROR_PERM evaluates to false.
- error == MAIL_ERROR_NOTFOUND evaluates to false.
hide
|
|
| 226 | | | (error == MAIL_ERROR_PERM || |
| 227 | | | error == MAIL_ERROR_NOTFOUND)) { |
| 228 | | | |
| 229 | | | |
| 230 | | | mail_search_args_unref(&bboxes[i]->search_args); |
| 231 | | | array_delete(&mbox->backend_boxes, i, 1);
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/array.h |
| |
147 | #define array_delete(array, idx, count) \ |
148 | array_delete_i(&(array)->arr, idx, count) |
| |
|
| 232 | | | bboxes = array_get(&mbox->backend_boxes, &count);
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/array.h |
| |
156 | #define array_get(array, count) \ |
157 | ARRAY_TYPE_CAST_CONST(array)array_get_i(&(array)->arr, count) |
| |
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/array.h |
| |
43 | # define ARRAY_TYPE_CAST_CONST(array) \ |
44 | (typeof(*(array)->v)) |
| |
|
| 233 | | | continue; |
| 234 | | | } |
| 235 | | | if (storage != mbox->ibox.box.storage) { |
Event 24:
Taking true branch. storage != mbox->ibox.box.storage evaluates to true.
hide
|
|
| 236 | | | |
| 237 | | | mail_storage_set_error(mbox->ibox.box.storage, |
| 238 | [+] | | error, str); |
Event 25:
str, which evaluates to the value assigned to storage->error_string at mail-storage.c:464, is passed to mail_storage_set_error() as the third argument. See related event 22.
hide
|
|
 |
| |