(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dfilter/gencode.c) |
| |
| 323 | | | gen_test(dfwork_t *dfw, stnode_t *st_node) |
| 324 | | | { |
| 325 | | | test_op_t st_op; |
| 326 | | | stnode_t *st_arg1, *st_arg2; |
| 327 | | | dfvm_value_t *val1; |
| 328 | | | dfvm_insn_t *insn; |
| 329 | | | |
| 330 | | | *hfinfo; |
| 331 | | | |
| 332 | | | sttype_test_get(st_node, &st_op, &st_arg1, &st_arg2); |
| 333 | | | |
| 334 | | | switch (st_op) { |
| 335 | | | case TEST_OP_UNINITIALIZED: |
| 336 | | | 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__)) |
| |
|
| 337 | | | break; |
Unreachable Control Flow
The highlighted code will not execute under any circumstances. This may be because of: |
|
| 338 | | | |
| 339 | | | case TEST_OP_EXISTS: |
| 340 | | | val1 = dfvm_value_new(HFINFO); |
| 341 | | | hfinfo = stnode_data(st_arg1); |
| 342 | | | |
| 343 | | | |
| 344 | | | while (hfinfo->same_name_prev) { |
| 345 | | | hfinfo = hfinfo->same_name_prev; |
| 346 | | | } |
| 347 | | | val1->value.hfinfo = hfinfo; |
| 348 | | | insn = dfvm_insn_new(CHECK_EXISTS); |
| 349 | | | insn->arg1 = val1; |
| 350 | | | dfw_append_insn(dfw, insn); |
| 351 | | | |
| 352 | | | |
| 353 | | | while (hfinfo) { |
| 354 | | | g_hash_table_insert(dfw->interesting_fields, |
| 355 | | | GINT_TO_POINTER(hfinfo->id), |
| 356 | | | GUINT_TO_POINTER(TRUE)); |
| 357 | | | hfinfo = hfinfo->same_name_next; |
| 358 | | | } |
| 359 | | | |
| 360 | | | break; |
| 361 | | | |
| 362 | | | case TEST_OP_NOT: |
| 363 | | | gencode(dfw, st_arg1); |
| 364 | | | insn = dfvm_insn_new(NOT); |
| 365 | | | dfw_append_insn(dfw, insn); |
| 366 | | | break; |
| 367 | | | |
| 368 | | | case TEST_OP_AND: |
| 369 | | | gencode(dfw, st_arg1); |
| 370 | | | |
| 371 | | | insn = dfvm_insn_new(IF_FALSE_GOTO); |
| 372 | | | val1 = dfvm_value_new(INSN_NUMBER); |
| 373 | | | insn->arg1 = val1; |
| 374 | | | dfw_append_insn(dfw, insn); |
| 375 | | | |
| 376 | | | gencode(dfw, st_arg2); |
| 377 | | | val1->value.numeric = dfw->next_insn_id; |
| 378 | | | break; |
| 379 | | | |
| 380 | | | case TEST_OP_OR: |
| 381 | | | gencode(dfw, st_arg1); |
| 382 | | | |
| 383 | | | insn = dfvm_insn_new(IF_TRUE_GOTO); |
| 384 | | | val1 = dfvm_value_new(INSN_NUMBER); |
| 385 | | | insn->arg1 = val1; |
| 386 | | | dfw_append_insn(dfw, insn); |
| 387 | | | |
| 388 | | | gencode(dfw, st_arg2); |
| 389 | | | val1->value.numeric = dfw->next_insn_id; |
| 390 | | | break; |
| 391 | | | |
| 392 | | | case TEST_OP_EQ: |
| 393 | | | gen_relation(dfw, ANY_EQ, st_arg1, st_arg2); |
| 394 | | | break; |
| 395 | | | |
| 396 | | | case TEST_OP_NE: |
| 397 | | | gen_relation(dfw, ANY_NE, st_arg1, st_arg2); |
| 398 | | | break; |
| 399 | | | |
| 400 | | | case TEST_OP_GT: |
| 401 | | | gen_relation(dfw, ANY_GT, st_arg1, st_arg2); |
| 402 | | | break; |
| 403 | | | |
| 404 | | | case TEST_OP_GE: |
| 405 | | | gen_relation(dfw, ANY_GE, st_arg1, st_arg2); |
| 406 | | | break; |
| 407 | | | |
| 408 | | | case TEST_OP_LT: |
| 409 | | | gen_relation(dfw, ANY_LT, st_arg1, st_arg2); |
| 410 | | | break; |
| 411 | | | |
| 412 | | | case TEST_OP_LE: |
| 413 | | | gen_relation(dfw, ANY_LE, st_arg1, st_arg2); |
| 414 | | | break; |
| 415 | | | |
| 416 | | | case TEST_OP_BITWISE_AND: |
| 417 | | | gen_relation(dfw, ANY_BITWISE_AND, st_arg1, st_arg2); |
| 418 | | | break; |
| 419 | | | |
| 420 | | | case TEST_OP_CONTAINS: |
| 421 | | | gen_relation(dfw, ANY_CONTAINS, st_arg1, st_arg2); |
| 422 | | | break; |
| 423 | | | |
| 424 | | | case TEST_OP_MATCHES: |
| 425 | | | gen_relation(dfw, ANY_MATCHES, st_arg1, st_arg2); |
| 426 | | | break; |
| 427 | | | } |
| 428 | | | } |
| |