(/home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib-storage/mail-search.c) |
| |
| 720 | | | static bool mail_search_arg_one_equals(const struct mail_search_arg *arg1, |
| 721 | | | const struct mail_search_arg *arg2) |
| 722 | | | { |
| 723 | | | if (arg1->type != arg2->type || |
| 724 | | | arg1->not != arg2->not) |
| 725 | | | return FALSE; |
| 726 | | | |
| 727 | | | switch (arg1->type) { |
| 728 | | | case SEARCH_OR: |
| 729 | | | case SEARCH_SUB: |
| 730 | | | return mail_search_arg_equals(arg1->value.subargs, |
| 731 | | | arg2->value.subargs); |
| 732 | | | |
| 733 | | | case SEARCH_ALL: |
| 734 | | | return TRUE; |
| 735 | | | case SEARCH_SEQSET: |
| 736 | | | |
| 737 | | | |
| 738 | | | return FALSE; |
| 739 | | | case SEARCH_UIDSET: |
| 740 | | | return array_cmp(&arg1->value.seqset, &arg2->value.seqset);
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/array.h |
| |
230 | #define array_cmp(array1, array2) \ |
231 | array_cmp_i(&(array1)->arr, &(array2)->arr) |
| |
|
| 741 | | | |
| 742 | | | case SEARCH_FLAGS: |
| 743 | | | return arg1->value.flags == arg2->value.flags; |
| 744 | | | case SEARCH_KEYWORDS: |
| 745 | | | return strcasecmp(arg1->value.str, arg2->value.str); |
| 746 | | | |
| 747 | | | case SEARCH_BEFORE: |
| 748 | | | case SEARCH_ON: |
| 749 | | | case SEARCH_SINCE: |
| 750 | | | case SEARCH_SENTBEFORE: |
| 751 | | | case SEARCH_SENTON: |
| 752 | | | case SEARCH_SENTSINCE: |
| 753 | | | return arg1->value.time == arg2->value.time; |
| 754 | | | |
| 755 | | | case SEARCH_SMALLER: |
| 756 | | | case SEARCH_LARGER: |
| 757 | | | return arg1->value.size == arg2->value.size; |
| 758 | | | |
| 759 | | | case : |
| 760 | | | case : |
| 761 | | | case : |
| 762 | | | if (strcasecmp(arg1->hdr_field_name, arg2->hdr_field_name) != 0) |
| 763 | | | return FALSE; |
| 764 | | | |
| 765 | | | case SEARCH_BODY: |
| 766 | | | case SEARCH_TEXT: |
| 767 | | | case SEARCH_BODY_FAST: |
| 768 | | | case SEARCH_TEXT_FAST: |
| 769 | | | case SEARCH_GUID: |
| 770 | | | case SEARCH_MAILBOX: |
| 771 | | | |
| 772 | | | |
| 773 | | | |
| 774 | | | |
| 775 | | | return strcmp(arg1->value.str, arg2->value.str); |
| 776 | | | |
| 777 | | | case SEARCH_MODSEQ: { |
| 778 | | | const struct mail_search_modseq *m1 = arg1->value.modseq; |
| 779 | | | const struct mail_search_modseq *m2 = arg2->value.modseq; |
| 780 | | | |
| 781 | | | return m1->modseq == m2->modseq && |
| 782 | | | m1->type == m2->type; |
| 783 | | | } |
| 784 | | | case SEARCH_INTHREAD: |
| 785 | | | return mail_search_args_equal(arg1->value.search_args, |
| 786 | | | arg2->value.search_args); |
| 787 | | | } |
| 788 | | | i_unreached();
x /home/sate/Testcases/c/cve/dovecot-1.2.0/src/lib/macros.h |
| |
208 | #define i_unreached() \ |
209 | i_panic("file %s: line %d: unreached", __FILE__, __LINE__) |
| |
|
| 789 | | | return FALSE; |
Unreachable Data Flow
The highlighted code will not execute under any circumstances. |
|
| 790 | | | } |
| |