(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/prefs.c) |
| |
| 806 | | | GList * |
| 807 | | | prefs_get_string_list(gchar *str) |
| 808 | | | { |
| 809 | | | enum { PRE_STRING, IN_QUOT, NOT_IN_QUOT }; |
| 810 | | | |
| 811 | | | gint state = PRE_STRING, i = 0, j = 0; |
| 812 | | | gboolean backslash = FALSE; |
| 813 | | | guchar cur_c; |
| 814 | | | gchar *slstr = NULL; |
| 815 | | | GList *sl = NULL; |
| 816 | | | |
| 817 | | | |
| 818 | | | slstr = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); |
| 819 | | | j = 0; |
Useless Assignment
This code assigns the variable the same value it already had. |
|
| 820 | | | |
| 821 | | | for (;;) { |
| 822 | | | cur_c = str[i]; |
| 823 | | | if (cur_c == '\0') { |
| 824 | | | |
| 825 | | | |
| 826 | | | if (state == IN_QUOT || backslash) { |
| 827 | | | |
| 828 | | | |
| 829 | | | g_free(slstr); |
| 830 | | | prefs_clear_string_list(sl); |
| 831 | | | return NULL; |
| 832 | | | } |
| 833 | | | slstr[j] = '\0'; |
| 834 | | | sl = g_list_append(sl, slstr); |
| 835 | | | break; |
| 836 | | | } |
| 837 | | | if (cur_c == '"' && ! backslash) { |
| 838 | | | switch (state) { |
| 839 | | | case PRE_STRING: |
| 840 | | | |
| 841 | | | |
| 842 | | | state = IN_QUOT; |
| 843 | | | break; |
| 844 | | | case IN_QUOT: |
| 845 | | | |
| 846 | | | |
| 847 | | | state = NOT_IN_QUOT; |
| 848 | | | break; |
| 849 | | | case NOT_IN_QUOT: |
| 850 | | | |
| 851 | | | |
| 852 | | | state = IN_QUOT; |
| 853 | | | break; |
| 854 | | | default: |
| 855 | | | break; |
| 856 | | | } |
| 857 | | | } else if (cur_c == '\\' && ! backslash) { |
| 858 | | | |
| 859 | | | |
| 860 | | | |
| 861 | | | |
| 862 | | | backslash = TRUE; |
| 863 | | | if (state == PRE_STRING) |
| 864 | | | state = NOT_IN_QUOT; |
| 865 | | | } else if (cur_c == ',' && state != IN_QUOT && ! backslash) { |
| 866 | | | |
| 867 | | | |
| 868 | | | |
| 869 | | | slstr[j] = '\0'; |
| 870 | | | sl = g_list_append(sl, slstr); |
| 871 | | | |
| 872 | | | |
| 873 | | | state = PRE_STRING; |
| 874 | | | slstr = (gchar *) g_malloc(sizeof(gchar) * COL_MAX_LEN); |
| 875 | | | j = 0; |
| 876 | | | } else if (!isspace(cur_c) || state != PRE_STRING) { |
| 877 | | | |
| 878 | | | |
| 879 | | | |
| 880 | | | |
| 881 | | | |
| 882 | | | |
| 883 | | | if (j < COL_MAX_LEN) { |
| 884 | | | slstr[j] = cur_c; |
| 885 | | | j++; |
| 886 | | | } |
| 887 | | | |
| 888 | | | |
| 889 | | | backslash = FALSE; |
| 890 | | | } |
| 891 | | | i++; |
| 892 | | | } |
| 893 | | | return(sl); |
| 894 | | | } |
| |