(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib-storage/index/maildir/maildir-storage.c) |
| |
| 1007 | | | maildirplusplus_iter_is_mailbox(struct mailbox_list_iterate_context *ctx, |
| 1008 | | | const char *dir, const char *fname, |
| 1009 | | | const char *mailbox_name ATTR_UNUSED, |
| 1010 | | | enum mailbox_list_file_type type, |
| 1011 | | | enum mailbox_info_flags *flags) |
| 1012 | | | { |
| 1013 | [+] | | struct maildir_storage *storage = MAILDIR_LIST_CONTEXT(ctx->list);
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/module-context.h |
| |
46 | #define MODULE_CONTEXT(obj, id_ctx) \ |
47 | (*((void **)array_idx_modifiable(&(obj)->module_contexts, \ |
48 | (id_ctx).id.module_id) + \ |
49 | OBJ_REGISTER_COMPATIBLE(obj, id_ctx))) |
| |
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/array.h |
| |
179 | #define array_idx_modifiable(array, idx) \ |
180 | ARRAY_TYPE_CAST_MODIFIABLE(array) \ |
181 | array_idx_modifiable_i(&(array)->arr, idx) |
| |
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/array.h |
| |
45 | # define ARRAY_TYPE_CAST_MODIFIABLE(array) \ |
46 | (typeof(*(array)->v_modifiable)) |
| |
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/module-context.h |
| |
43 | #define OBJ_REGISTER_COMPATIBLE(obj, id_ctx) \ |
44 | COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE(OBJ_REGISTER(obj), (id_ctx).reg) |
| |
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/macros.h |
| |
158 | # define COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE(_a, _b) \ |
159 | COMPILE_ERROR_IF_TRUE( \ |
160 | !__builtin_types_compatible_p(typeof(_a), typeof(_b))) |
| |
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/macros.h |
| |
156 | # define COMPILE_ERROR_IF_TRUE(condition) \ |
157 | (sizeof(char[1 - 2 * !!(condition)]) - 1) |
| |
|
 |
| 1014 | | | struct mail_storage *_storage = &storage->storage; |
| 1015 | | | int ret; |
| 1016 | | | |
| 1017 | | | if (fname[1] == mailbox_list_get_hierarchy_sep(_storage->list) && |
| 1018 | | | strcmp(fname+2, MAILDIR_UNLINK_DIRNAME) == 0) { |
| 1019 | | | const char *path; |
| 1020 | | | struct stat st; |
| 1021 | | | |
| 1022 | | | |
| 1023 | | | |
| 1024 | | | |
| 1025 | | | |
| 1026 | [+] | | path = t_strdup_printf("%s/%s", dir, fname); |
 |
| 1027 | | | if (stat(path, &st) == 0 && |
Event 34:
path, which evaluates to the value assigned to ret at data-stack.c:335, is passed to stat64() as the first argument. See related event 33.
hide
Event 35:
stat64() accesses the file named path, where path is the value assigned to ret at data-stack.c:335. - The same name is used to access a file later, but it is not safe to assume that it will be the same underlying file.
See related event 34.
hide
|
|
| 1028 | | | st.st_mtime < ioloop_time - 3600)
x /usr/include/bits/stat.h |
| |
95 | # define st_mtime st_mtim.tv_sec |
| |
|
| 1029 | [+] | | (void)unlink_directory(path, TRUE); |
Event 37:
!0 evaluates to true.
hide
Event 38:
path, which evaluates to the value assigned to ret at data-stack.c:335, is passed to unlink_directory() as the first argument. See related event 33.
hide
|
|
 |
| |