Text   |  XML   |  ReML   |   Visible Warnings:

Unreachable Control Flow  at dfvm.c:251

No properties have been set. | edit properties
Jump to warning location ↓ warning details...
Show Events | Options

dfvm_dump

(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dfilter/dfvm.c)expand/collapse
Show more  
 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);
 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();
 251                                  break;
 252                  }
 253          }
 254  }
Show more  




Change Warning 1173.29960 : Unreachable Control Flow

Priority:
State:
Finding:
Owner:
Note: