Text   |  XML   |  ReML   |   Visible Warnings:

Null Pointer Dereference  at packet-gssapi.c:254

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

dissect_gssapi_work

(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-gssapi.c)expand/collapse
Show more  
 172  dissect_gssapi_work(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
 173      gboolean is_verifier)
 174  {
 175          proto_item *volatile item;
 176          proto_tree *volatile subtree;
 177          volatile int return_offset = 0;
 178          gssapi_conv_info_t *volatile gss_info;
 179          gssapi_oid_value *oidvalue;
 180          dissector_handle_t handle;
 181          conversation_t *conversation;
 182          tvbuff_t *oid_tvb;
 183          int len, start_offset, oid_start_offset;
 184          volatile int offset;
 185          gint8 class;
 186          gboolean pc, ind_field;
 187          gint32 tag;
 188          guint32 len1;
 189          const char *oid;
 190          fragment_data *fd_head=NULL;
 191          gssapi_frag_info_t *fi;
 192          tvbuff_t *volatile gss_tvb=NULL;
 193          asn1_ctx_t asn1_ctx;
 194   
 195          start_offset=0;
 196          offset=0;
 197          asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
 198          /*
 199           * We don't know whether the data is encrypted, so say it's
 200           * not, for now.  The subdissector must set gssapi_data_encrypted
 201           * if it is.
 202           */
 203          pinfo->gssapi_data_encrypted = FALSE;
 204   
 205   
 206          /*
 207           * We need a conversation for later
 208           */
 209          conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst,
 210                                           pinfo->ptype, pinfo->srcport,
 211                                           pinfo->destport, 0);
 212          if(!conversation){
 213                  conversation = conversation_new(pinfo->fd->num, &pinfo->src,
 214                                            &pinfo->dst,  
 215                                            pinfo->ptype,  
 216                                            pinfo->srcport,  
 217                                            pinfo->destport, 0);
 218          }
 219[+]         gss_info = conversation_get_proto_data(conversation, proto_gssapi);
 220          if (!gss_info) {
 221                  gss_info = se_alloc(sizeof(gssapi_conv_info_t));
 222                  gss_info->oid=NULL;
 223                  gss_info->do_reassembly=FALSE;
 224                  gss_info->frags=se_tree_create_non_persistent(EMEM_TREE_TYPE_RED_BLACK, "gssapi_frags");
 225   
 226                  conversation_add_proto_data(conversation, proto_gssapi, gss_info);
 227          }
 228   
 229          item = proto_tree_add_item(
 230                  tree, proto_gssapi, tvb, offset, -1, FALSE);
 231   
 232          subtree = proto_item_add_subtree(item, ett_gssapi);
 233   
 234          /*
 235           * Catch the ReportedBoundsError exception; the stuff we've been 
 236           * handed doesn't necessarily run to the end of the packet, it's
 237           * an item inside a packet, so if it happens to be malformed (or
 238           * we, or a dissector we call, has a bug), so that an exception
 239           * is thrown, we want to report the error, but return and let
 240           * our caller dissect the rest of the packet.
 241           *
 242           * If it gets a BoundsError, we can stop, as there's nothing more
 243           * in the packet after our blob to see, so we just re-throw the 
 244           * exception.
 245           */
 246          TRY {
 247                  gss_tvb=tvb;
 248   
 249   
 250                  /* First of all, if its the first time we see this packet 
 251                   * then check whether we are in the middle of reassembly or not
 252                   */
 253                  if( (!pinfo->fd->flags.visited)
 254                  &&  (gss_info->do_reassembly)
Show more  




Change Warning 2617.33862 : Null Pointer Dereference

Priority:
State:
Finding:
Owner:
Note: