Text   |  XML   |  ReML   |   Visible Warnings:

Useless Assignment  at packet-rsvp.c:5455

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

dissect_rsvp_msg_tree

(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-rsvp.c)expand/collapse
Show more  
 5436  dissect_rsvp_msg_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
 5437                        int tree_mode, rsvp_conversation_info *rsvph)
 5438  {
 5439      proto_tree *rsvp_tree = NULL;
 5440      proto_tree *rsvp_header_tree;
 5441      proto_tree *rsvp_object_tree;
 5442      proto_tree *ti;
 5443      proto_item *hidden_item;
 5444      guint16 cksum, computed_cksum;
 5445      vec_t cksum_vec[1];
 5446      int offset = 0;
 5447      int len;
 5448      guint8 ver_flags;
 5449      guint8 message_type;
 5450      int session_off, tempfilt_off;
 5451      int msg_length;
 5452      int obj_length;
 5453      int offset2;
 5454   
 5455      offset = 0;
 5456      len = 0;
 5457      ver_flags = tvb_get_guint8(tvb, 0);
 5458      msg_length = tvb_get_ntohs(tvb, 6);
 5459      message_type = tvb_get_guint8(tvb, 1);
 5460   
 5461      ti = proto_tree_add_item(tree, proto_rsvp, tvb, offset, msg_length,
 5462                               FALSE);
 5463      rsvp_tree = proto_item_add_subtree(ti, tree_mode);
 5464      if (pinfo->ipproto == IP_PROTO_RSVPE2EI)
 5465          proto_item_append_text(rsvp_tree, " (E2E-IGNORE)");
 5466      proto_item_append_text(rsvp_tree, ": ");
 5467      proto_item_append_text(rsvp_tree, "%s", val_to_str(message_type, message_type_vals,
 5468                                                   "Unknown (%u). "));
 5469      find_rsvp_session_tempfilt(tvb, 0, &session_off, &tempfilt_off);
 5470      if (session_off)
 5471          proto_item_append_text(rsvp_tree, "%s", summary_session(tvb, session_off));
 5472      if (tempfilt_off)
 5473          proto_item_append_text(rsvp_tree, "%s", summary_template(tvb, tempfilt_off));
 5474   
 5475      ti = proto_tree_add_text(rsvp_tree, tvb, offset, 8, "RSVP Header. %s",
 5476                               val_to_str(message_type, message_type_vals,
 5477                                          "Unknown Message (%u). "));
 5478      if (pinfo->ipproto == IP_PROTO_RSVPE2EI)
 5479          proto_item_append_text(ti, " (E2E-IGNORE)");
 5480      rsvp_header_tree = proto_item_add_subtree(ti, TREE(TT_HDR));
 5481   
 5482      proto_tree_add_text(rsvp_header_tree, tvb, offset, 1, "RSVP Version: %u",
 5483                          (ver_flags & 0xf0)>>4);
 5484      proto_tree_add_text(rsvp_header_tree, tvb, offset, 1, "Flags: %02x",
 5485                          ver_flags & 0xf);
 5486      proto_tree_add_uint(rsvp_header_tree, rsvp_filter[RSVPF_MSG], tvb,
 5487                          offset+1, 1, message_type);
 5488      switch (RSVPF_MSG + message_type) {
 5489   
 5490      case RSVPF_PATH:
 5491      case RSVPF_RESV:
 5492      case RSVPF_PATHERR:
 5493      case RSVPF_RESVERR:
 5494      case RSVPF_PATHTEAR:
 5495      case RSVPF_RESVTEAR:
 5496      case RSVPF_RCONFIRM:
 5497      case RSVPF_RTEARCONFIRM:
 5498      case RSVPF_BUNDLE:
 5499      case RSVPF_ACK:
 5500      case RSVPF_SREFRESH:
 5501      case RSVPF_HELLO:
 5502      case RSVPF_NOTIFY:
 5503          hidden_item = proto_tree_add_boolean(rsvp_header_tree, rsvp_filter[RSVPF_MSG + message_type], tvb,
 5504                                        offset+1, 1, 1);
 5505          PROTO_ITEM_SET_HIDDEN(hidden_item);
 5506          break;
 5507   
 5508      default:
 5509          proto_tree_add_protocol_format(rsvp_header_tree, proto_malformed, tvb, offset+1, 1,
 5510                                         "Invalid message type: %u", message_type);
 5511          return;
 5512      }
 5513   
 5514      cksum = tvb_get_ntohs(tvb, offset+2);
 5515      if (!pinfo->fragmented && (int) tvb_length(tvb) >= msg_length) {
 5516          /* The packet isn't part of a fragmented datagram and isn't
 5517             truncated, so we can checksum it. */
 5518          cksum_vec[0].ptr = tvb_get_ptr(tvb, 0, msg_length);
 5519          cksum_vec[0].len = msg_length;
 5520          computed_cksum = in_cksum(&cksum_vec[0], 1);
 5521          if (computed_cksum == 0) {
 5522              proto_tree_add_text(rsvp_header_tree, tvb, offset+2, 2,
 5523                                  "Message Checksum: 0x%04x [correct]",
 5524                                  cksum);
 5525          } else {
 5526              proto_tree_add_text(rsvp_header_tree, tvb, offset+2, 2,
 5527                                  "Message Checksum: 0x%04x [incorrect, should be 0x%04x]",
 5528                                  cksum,
 5529                                  in_cksum_shouldbe(cksum, computed_cksum));
 5530          }
 5531      } else {
 5532          proto_tree_add_text(rsvp_header_tree, tvb, offset+2, 2,
 5533                              "Message Checksum: 0x%04x",
 5534                              cksum);
 5535      }
 5536      proto_tree_add_text(rsvp_header_tree, tvb, offset+4, 1,
 5537                          "Sending TTL: %u",
 5538                          tvb_get_guint8(tvb, offset+4));
 5539      proto_tree_add_text(rsvp_header_tree, tvb, offset+6, 2,
 5540                          "Message length: %u", msg_length);
 5541   
 5542      offset = 8;
 5543      len = 8;
 5544   
 5545      if (message_type == RSVP_MSG_BUNDLE) {
 5546          /* Bundle message. Dissect component messages */
 5547          if (rsvp_bundle_dissect) {
 5548              int len = 8;
 5549              while (len < msg_length) {
 5550                  gint sub_len;
 5551                  tvbuff_t *tvb_sub;
 5552                  sub_len = tvb_get_ntohs(tvb, len+6);
 5553                  tvb_sub = tvb_new_subset(tvb, len, sub_len, sub_len);
 5554                  dissect_rsvp_msg_tree(tvb_sub, pinfo, rsvp_tree, TREE(TT_BUNDLE_COMPMSG), rsvph);
 5555                  len += sub_len;
 5556              }
 5557          } else {
 5558              proto_tree_add_text(rsvp_tree, tvb, offset, msg_length - len,
 5559                                  "Bundle Component Messages Not Dissected");
 5560          }
 5561          return;
 5562      }
 5563   
 5564      while (len < msg_length) {
 5565          guint8 class;
 5566          guint8 type;
 5567   
 5568          obj_length = tvb_get_ntohs(tvb, offset);
 5569          class = tvb_get_guint8(tvb, offset+2);
 5570          type = tvb_get_guint8(tvb, offset+3);
 5571          ti = proto_tree_add_item(rsvp_tree, rsvp_filter[rsvp_class_to_filter_num(class)],
 5572                                   tvb, offset, obj_length, FALSE);
 5573          rsvp_object_tree = proto_item_add_subtree(ti, TREE(rsvp_class_to_tree_type(class)));
 5574          if (obj_length < 4) {
 5575              proto_tree_add_text(rsvp_object_tree, tvb, offset, 2,
 5576                                  "Length: %u (bogus, must be >= 4)", obj_length);
 5577              break;
 5578          }
 5579          proto_tree_add_text(rsvp_object_tree, tvb, offset, 2,
 5580                              "Length: %u", obj_length);
 5581          proto_tree_add_uint(rsvp_object_tree, rsvp_filter[RSVPF_OBJECT], tvb,
 5582                              offset+2, 1, class);
 5583   
 5584          offset2 = offset+4;
 5585   
 5586          switch(class) {
 5587   
 5588          case RSVP_CLASS_SESSION:
 5589              dissect_rsvp_session(ti, rsvp_object_tree, tvb, offset, obj_length, class, type, rsvph);
 5590              break;
 5591   
 5592          case RSVP_CLASS_HOP:
 5593              dissect_rsvp_hop(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5594              break;
 5595   
 5596          case RSVP_CLASS_TIME_VALUES:
 5597              dissect_rsvp_time_values(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5598              break;
 5599   
 5600          case RSVP_CLASS_ERROR:
 5601              dissect_rsvp_error(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5602              break;
 5603   
 5604          case RSVP_CLASS_SCOPE:
 5605              dissect_rsvp_scope(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5606              break;
 5607   
 5608          case RSVP_CLASS_STYLE:
 5609              dissect_rsvp_style(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5610              break;
 5611   
 5612          case RSVP_CLASS_CONFIRM:
 5613              dissect_rsvp_confirm(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5614              break;
 5615   
 5616          case RSVP_CLASS_SENDER_TEMPLATE:
 5617          case RSVP_CLASS_FILTER_SPEC:
 5618              dissect_rsvp_template_filter(ti, rsvp_object_tree, tvb, offset, obj_length, class, type, rsvph);
 5619              break;
 5620   
 5621          case RSVP_CLASS_SENDER_TSPEC:
 5622              dissect_rsvp_tspec(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5623              break;
 5624   
 5625          case RSVP_CLASS_FLOWSPEC:
 5626              dissect_rsvp_flowspec(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5627              break;
 5628   
 5629          case RSVP_CLASS_ADSPEC:
 5630              dissect_rsvp_adspec(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5631              break;
 5632   
 5633          case RSVP_CLASS_INTEGRITY:
 5634              dissect_rsvp_integrity(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5635              break;
 5636   
 5637          case RSVP_CLASS_POLICY:
 5638              dissect_rsvp_policy(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5639              break;
 5640   
 5641          case RSVP_CLASS_LABEL_REQUEST:
 5642              dissect_rsvp_label_request(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5643              break;
 5644   
 5645          case RSVP_CLASS_RECOVERY_LABEL:
 5646          case RSVP_CLASS_UPSTREAM_LABEL:
 5647          case RSVP_CLASS_SUGGESTED_LABEL:
 5648          case RSVP_CLASS_LABEL:
 5649              dissect_rsvp_label(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5650              break;
 5651   
 5652          case RSVP_CLASS_LABEL_SET:
 5653              dissect_rsvp_label_set(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5654              break;
 5655   
 5656          case RSVP_CLASS_SESSION_ATTRIBUTE:
 5657              dissect_rsvp_session_attribute(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5658              break;
 5659   
 5660          case RSVP_CLASS_EXPLICIT_ROUTE:
 5661              dissect_rsvp_explicit_route(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5662              break;
 5663   
 5664          case RSVP_CLASS_RECORD_ROUTE:
 5665              dissect_rsvp_record_route(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5666              break;
 5667   
 5668          case RSVP_CLASS_MESSAGE_ID:
 5669              dissect_rsvp_message_id(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5670              break;
 5671   
 5672          case RSVP_CLASS_MESSAGE_ID_ACK:
 5673              dissect_rsvp_message_id_ack(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5674              break;
 5675   
 5676          case RSVP_CLASS_MESSAGE_ID_LIST:
 5677              dissect_rsvp_message_id_list(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5678              break;
 5679   
 5680          case RSVP_CLASS_HELLO:
 5681              dissect_rsvp_hello(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5682              break;
 5683   
 5684          case RSVP_CLASS_DCLASS:
 5685              dissect_rsvp_dclass(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5686              break;
 5687   
 5688          case RSVP_CLASS_ADMIN_STATUS:
 5689              dissect_rsvp_admin_status(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5690              break;
 5691   
 5692          case RSVP_CLASS_ASSOCIATION:
 5693              dissect_rsvp_association(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5694              break;
 5695   
 5696          case RSVP_CLASS_LSP_TUNNEL_IF_ID:
 5697              dissect_rsvp_lsp_tunnel_if_id(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5698              break;
 5699   
 5700          case RSVP_CLASS_NOTIFY_REQUEST:
 5701              dissect_rsvp_notify_request(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5702              break;
 5703   
 5704          case RSVP_CLASS_GENERALIZED_UNI:
 5705              dissect_rsvp_gen_uni(ti, rsvp_object_tree, tvb, offset, obj_length, class, type, rsvph);
 5706              break;
 5707   
 5708          case RSVP_CLASS_CALL_ID:
 5709              dissect_rsvp_call_id(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5710              break;
 5711   
 5712          case RSVP_CLASS_RESTART_CAP:
 5713              dissect_rsvp_restart_cap(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5714              break;
 5715   
 5716          case RSVP_CLASS_PROTECTION:
 5717              dissect_rsvp_protection_info(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5718              break;
 5719   
 5720          case RSVP_CLASS_FAST_REROUTE:
 5721              dissect_rsvp_fast_reroute(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5722              break;
 5723   
 5724          case RSVP_CLASS_DETOUR:
 5725              dissect_rsvp_detour(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5726              break;
 5727   
 5728          case RSVP_CLASS_DIFFSERV:
 5729              dissect_rsvp_diffserv(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5730              break;
 5731   
 5732          case RSVP_CLASS_CLASSTYPE:
 5733              dissect_rsvp_diffserv_aware_te(ti, rsvp_object_tree, tvb, offset, obj_length, class, type);
 5734              break;
 5735   
 5736          case RSVP_CLASS_NULL:
 5737          default:
 5738              proto_tree_add_text(rsvp_object_tree, tvb, offset2, obj_length - 4,
 5739                                  "Data (%d bytes)", obj_length - 4);
 5740              break;
 5741          }
 5742   
 5743          offset += obj_length;
 5744          len += obj_length;
 5745      }
 5746  }
Show more  




Change Warning 2926.33969 : Useless Assignment

Priority:
State:
Finding:
Owner:
Note: