(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-ipsec.c) |
| |
| 747 | | | esp_sa_parse_addr_len(const gchar *sa, guint index_start, gint *len, guint *index_end) |
| 748 | | | { |
| 749 | | | guint cpt = 0; |
| 750 | | | char len_string[IPSEC_ADDR_LEN_MAX + 1]; |
| 751 | | | gboolean done_flag = FALSE; |
| 752 | | | |
| 753 | | | *len = -1; |
| 754 | | | |
| 755 | | | if((sa == NULL) || (strcmp(sa, "") == 0)) return FALSE; |
| 756 | | | |
| 757 | | | if(sa[index_start] == IPSEC_SA_SEPARATOR) |
| 758 | | | { |
| 759 | | | *index_end = index_start + 1; |
| 760 | | | *len = -1; |
Useless Assignment
This code assigns the variable the same value it already had. |
|
| 761 | | | done_flag = TRUE; |
| 762 | | | } |
| 763 | | | |
| 764 | | | else if(sa[index_start] == IPSEC_SA_ADDR_LEN_SEPARATOR) |
| 765 | | | { |
| 766 | | | cpt ++; |
| 767 | | | while(((cpt + index_start) < strlen(sa)) && (done_flag == FALSE) && (cpt < IPSEC_ADDR_LEN_MAX)) |
| 768 | | | { |
| 769 | | | if(sa[cpt + index_start] == IPSEC_SA_SEPARATOR) |
| 770 | | | { |
| 771 | | | if(cpt == 1) |
| 772 | | | { |
| 773 | | | *index_end = index_start + cpt + 1; |
| 774 | | | *len = -1; |
| 775 | | | done_flag = TRUE; |
| 776 | | | |
| 777 | | | } |
| 778 | | | else |
| 779 | | | { |
| 780 | | | *index_end = cpt + index_start + 1; |
| 781 | | | len_string[cpt - 1] = '\0'; |
| 782 | | | *len = atoi(len_string); |
| 783 | | | done_flag = TRUE; |
| 784 | | | } |
| 785 | | | } |
| 786 | | | |
| 787 | | | else |
| 788 | | | { |
| 789 | | | if((cpt == IPSEC_ADDR_LEN_MAX) && ((cpt + index_start) < strlen(sa)) && (sa[cpt + index_start + 1] != IPSEC_SA_ADDR_LEN_SEPARATOR) && (sa[cpt + index_start + 1] != IPSEC_SA_SEPARATOR)) |
| 790 | | | return FALSE; |
| 791 | | | len_string[cpt -1] = sa[cpt + index_start]; |
| 792 | | | cpt ++; |
| 793 | | | } |
| 794 | | | } |
| 795 | | | } |
| 796 | | | |
| 797 | | | return done_flag; |
| 798 | | | } |
| |