(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dfilter/dfvm.c) |
| |
| 91 | | | dfvm_dump(FILE *f, GPtrArray *insns) |
| 92 | | | { |
| 93 | | | int id, length; |
| 94 | | | dfvm_insn_t *insn; |
| 95 | | | dfvm_value_t *arg1; |
| 96 | | | dfvm_value_t *arg2; |
| 97 | | | dfvm_value_t *arg3; |
| 98 | | | dfvm_value_t *arg4; |
| 99 | | | char *value_str; |
| 100 | | | GSList *range_list; |
| 101 | | | drange_node *range_item; |
| 102 | | | |
| 103 | | | length = insns->len; |
| 104 | | | |
| 105 | | | for (id = 0; id < length; id++) { |
| 106 | | | |
| 107 | | | insn = g_ptr_array_index(insns, id);
x /usr/include/glib-2.0/glib/garray.h |
| |
111 | #define g_ptr_array_index(array,index_) ((array)->pdata)[index_] |
| |
|
| 108 | | | arg1 = insn->arg1; |
| 109 | | | arg2 = insn->arg2; |
| 110 | | | arg3 = insn->arg3; |
| 111 | | | arg4 = insn->arg4; |
| 112 | | | |
| 113 | | | switch (insn->op) { |
| 114 | | | case CHECK_EXISTS: |
| 115 | | | fprintf(f, "%05d CHECK_EXISTS\t%s\n", |
| 116 | | | id, arg1->value.hfinfo->abbrev); |
| 117 | | | break; |
| 118 | | | |
| 119 | | | case READ_TREE: |
| 120 | | | fprintf(f, "%05d READ_TREE\t\t%s -> reg#%u\n", |
| 121 | | | id, arg1->value.hfinfo->abbrev, |
| 122 | | | arg2->value.numeric); |
| 123 | | | break; |
| 124 | | | |
| 125 | | | case CALL_FUNCTION: |
| 126 | | | fprintf(f, "%05d CALL_FUNCTION\t%s (", |
| 127 | | | id, arg1->value.funcdef->name); |
| 128 | | | if (arg3) { |
| 129 | | | fprintf(f, "reg#%u", arg3->value.numeric); |
| 130 | | | } |
| 131 | | | if (arg4) { |
| 132 | | | fprintf(f, ", reg#%u", arg4->value.numeric); |
| 133 | | | } |
| 134 | | | fprintf(f, ") --> reg#%u\n", arg2->value.numeric); |
| 135 | | | break; |
| 136 | | | |
| 137 | | | case PUT_FVALUE: |
| 138 | | | value_str = fvalue_to_string_repr(arg1->value.fvalue, |
| 139 | | | FTREPR_DFILTER, NULL); |
| 140 | | | fprintf(f, "%05d PUT_FVALUE\t%s <%s> -> reg#%u\n", |
| 141 | | | id, value_str, |
| 142 | | | fvalue_type_name(arg1->value.fvalue), |
| 143 | | | arg2->value.numeric); |
| 144 | | | g_free(value_str); |
| 145 | | | break; |
| 146 | | | |
| 147 | | | case MK_RANGE: |
| 148 | | | arg3 = insn->arg3; |
| 149 | | | fprintf(f, "%05d MK_RANGE\t\treg#%u[", |
| 150 | | | id, |
| 151 | | | arg1->value.numeric); |
| 152 | | | for (range_list = arg3->value.drange->range_list; |
| 153 | | | range_list != NULL; |
| 154 | | | range_list = range_list->next) { |
| 155 | | | range_item = range_list->data; |
| 156 | | | switch (range_item->ending) { |
| 157 | | | |
| 158 | | | case UNINITIALIZED: |
| 159 | | | fprintf(f, "?"); |
| 160 | | | break; |
| 161 | | | |
| 162 | | | case LENGTH: |
| 163 | | | fprintf(f, "%d:%d", |
| 164 | | | range_item->start_offset, |
| 165 | | | range_item->length); |
| 166 | | | break; |
| 167 | | | |
| 168 | | | case OFFSET: |
| 169 | | | fprintf(f, "%d-%d", |
| 170 | | | range_item->start_offset, |
| 171 | | | range_item->end_offset); |
| 172 | | | break; |
| 173 | | | |
| 174 | | | case TO_THE_END: |
| 175 | | | fprintf(f, "%d:", |
| 176 | | | range_item->start_offset); |
| 177 | | | break; |
| 178 | | | } |
| 179 | | | if (range_list->next != NULL) |
| 180 | | | fprintf(f, ","); |
| 181 | | | } |
| 182 | | | fprintf(f, "] -> reg#%u\n", |
| 183 | | | arg2->value.numeric); |
| 184 | | | break; |
| 185 | | | |
| 186 | | | case ANY_EQ: |
| 187 | | | fprintf(f, "%05d ANY_EQ\t\treg#%u == reg#%u\n", |
| 188 | | | id, arg1->value.numeric, arg2->value.numeric); |
| 189 | | | break; |
| 190 | | | |
| 191 | | | case ANY_NE: |
| 192 | | | fprintf(f, "%05d ANY_NE\t\treg#%u == reg#%u\n", |
| 193 | | | id, arg1->value.numeric, arg2->value.numeric); |
| 194 | | | break; |
| 195 | | | |
| 196 | | | case ANY_GT: |
| 197 | | | fprintf(f, "%05d ANY_GT\t\treg#%u == reg#%u\n", |
| 198 | | | id, arg1->value.numeric, arg2->value.numeric); |
| 199 | | | break; |
| 200 | | | |
| 201 | | | case ANY_GE: |
| 202 | | | fprintf(f, "%05d ANY_GE\t\treg#%u == reg#%u\n", |
| 203 | | | id, arg1->value.numeric, arg2->value.numeric); |
| 204 | | | break; |
| 205 | | | |
| 206 | | | case ANY_LT: |
| 207 | | | fprintf(f, "%05d ANY_LT\t\treg#%u == reg#%u\n", |
| 208 | | | id, arg1->value.numeric, arg2->value.numeric); |
| 209 | | | break; |
| 210 | | | |
| 211 | | | case ANY_LE: |
| 212 | | | fprintf(f, "%05d ANY_LE\t\treg#%u == reg#%u\n", |
| 213 | | | id, arg1->value.numeric, arg2->value.numeric); |
| 214 | | | break; |
| 215 | | | |
| 216 | | | case ANY_BITWISE_AND: |
| 217 | | | fprintf(f, "%05d ANY_BITWISE_AND\t\treg#%u == reg#%u\n", |
| 218 | | | id, arg1->value.numeric, arg2->value.numeric); |
| 219 | | | break; |
| 220 | | | |
| 221 | | | case ANY_CONTAINS: |
| 222 | | | fprintf(f, "%05d ANY_CONTAINS\treg#%u contains reg#%u\n", |
| 223 | | | id, arg1->value.numeric, arg2->value.numeric); |
| 224 | | | break; |
| 225 | | | |
| 226 | | | case ANY_MATCHES: |
| 227 | | | fprintf(f, "%05d ANY_MATCHES\treg#%u matches reg#%u\n", |
| 228 | | | id, arg1->value.numeric, arg2->value.numeric); |
| 229 | | | break; |
| 230 | | | |
| 231 | | | case NOT: |
| 232 | | | fprintf(f, "%05d NOT\n", id); |
| 233 | | | break; |
| 234 | | | |
| 235 | | | case RETURN: |
| 236 | | | fprintf(f, "%05d RETURN\n", id); |
| 237 | | | break; |
| 238 | | | |
| 239 | | | case IF_TRUE_GOTO: |
| 240 | | | fprintf(f, "%05d IF-TRUE-GOTO\t%d\n", |
| 241 | | | id, arg1->value.numeric); |
| 242 | | | break; |
| 243 | | | |
| 244 | | | case IF_FALSE_GOTO: |
| 245 | | | fprintf(f, "%05d IF-FALSE-GOTO\t%d\n", |
| 246 | | | id, arg1->value.numeric); |
| 247 | | | break; |
| 248 | | | |
| 249 | | | default: |
| 250 | | | g_assert_not_reached();
x /usr/include/glib-2.0/glib/gtestutils.h |
| |
73 | #define g_assert_not_reached() do { g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, NULL); } while (0) |
| |
x /usr/include/glib-2.0/glib/gmacros.h |
| |
160 | # define G_STRFUNC ((const char*) (__PRETTY_FUNCTION__)) |
| |
|
| 251 | | | break; |
Unreachable Control Flow
The highlighted code will not execute under any circumstances. This may be because of: |
|
| 252 | | | } |
| 253 | | | } |
| 254 | | | } |
| |