Text   |  XML   |  ReML   |   Visible Warnings:

Null Pointer Dereference  at pcapng.c:861

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

pcapng_open

(/home/sate/Testcases/c/cve/wireshark-1.2.0/wiretap/pcapng.c)expand/collapse
Show more  
 1110  pcapng_open(wtap *wth, int *err, gchar **err_info)
 1111  {
 1112          int bytes_read;
 1113          pcapng_t pn;
 1114          wtapng_block_t wblock;
 1115   
 1116   
 1117          /* we don't know the byte swapping of the file yet */
 1118          pn.byte_swapped = FALSE;
 1119          pn.if_fcslen = -1;
 1120          pn.version_major = -1;
 1121          pn.version_minor = -1;
 1122          pn.interface_data = NULL;
 1123          pn.number_of_interfaces = 0;
 1124   
 1125          /* we don't expect any packet blocks yet */
 1126          wblock.frame_buffer = NULL;
 1127          wblock.pseudo_header = NULL;
 1128   
 1129   
 1130          pcapng_debug0("pcapng_open: opening file");
 1131          /* read first block */
 1132[+]         bytes_read = pcapng_read_block(wth->fh, &pn, &wblock, err, err_info);
expand/collapse

pcapng_read_block

(/home/sate/Testcases/c/cve/wireshark-1.2.0/wiretap/pcapng.c)expand/collapse
Show more  
 1027  pcapng_read_block(FILE_T fh, pcapng_t *pn, wtapng_block_t *wblock, int *err, gchar **err_info)
 1028  {
 1029          int     block_read;
 1030          int     bytes_read;
 1031          pcapng_block_header_t bh;
 1032          guint32 block_total_length;
 1033   
 1034   
 1035          /* Try to read the (next) block header */
 1036          errno = WTAP_ERR_CANT_READ;
 1037          bytes_read = file_read(&bh, 1, sizeof bh, fh);
 1038          if (bytes_read != sizeof bh) {
 1039                  pcapng_debug0("pcapng_read_block: end of file");
 1040                  *err = file_error(fh);
 1041                  if (*err != 0)
 1042                          return -1;
 1043                  return 0;
 1044          }
 1045   
 1046          block_read = bytes_read;
 1047          if(pn->byte_swapped) {
 1048                  bh.block_type           = BSWAP32(bh.block_type);
 1049                  bh.block_total_length   = BSWAP32(bh.block_total_length);
 1050          }
 1051   
 1052          wblock->type = bh.block_type;
 1053   
 1054          pcapng_debug1("pcapng_read_block: block_type 0x%x", bh.block_type);
 1055   
 1056          switch(bh.block_type) {
 1057                  case(BLOCK_TYPE_SHB):
 1058                          bytes_read = pcapng_read_section_header_block(fh, &bh, pn, wblock, err, err_info);
 1059                          break;
 1060                  case(BLOCK_TYPE_IDB):
 1061                          bytes_read = pcapng_read_if_descr_block(fh, &bh, pn, wblock, err, err_info);
 1062                          break;
 1063                  case(BLOCK_TYPE_PB):
 1064                          bytes_read = pcapng_read_packet_block(fh, &bh, pn, wblock, err, err_info, FALSE);
 1065                          break;
 1066                  case(BLOCK_TYPE_SPB):
 1067[+]                         bytes_read = pcapng_read_simple_packet_block(fh, &bh, pn, wblock, err, err_info);
expand/collapse

pcapng_read_simple_packet_block

(/home/sate/Testcases/c/cve/wireshark-1.2.0/wiretap/pcapng.c)expand/collapse
Show more  
 826  pcapng_read_simple_packet_block(FILE_T fh, pcapng_block_header_t *bh, pcapng_t *pn, wtapng_block_t *wblock,int *err, gchar **err_info _U_)
 827  {
 828          int bytes_read;
 829          int block_read;
 830          guint64 file_offset64;
 831          pcapng_simple_packet_block_t spb;
 832   
 833   
 834          /* "Simple Packet Block" read fixed part */
 835          errno = WTAP_ERR_CANT_READ;
 836          bytes_read = file_read(&spb, 1, sizeof spb, fh);
 837          if (bytes_read != sizeof spb) {
 838                  pcapng_debug0("pcapng_read_simple_packet_block: failed to read packet data");
 839                  *err = file_error(fh);
 840                  return 0;
 841          }
 842          block_read = bytes_read;
 843   
 844          if(pn->byte_swapped) {
 845                  wblock->data.simple_packet.packet_len   = BSWAP32(spb.packet_len);
 846          } else {
 847                  wblock->data.simple_packet.packet_len   = spb.packet_len;
 848          }
 849   
 850          wblock->data.simple_packet.cap_len = bh->block_total_length  
 851                                               - (guint32)sizeof(pcapng_simple_packet_block_t)  
 852                                               - (guint32)sizeof(bh->block_total_length);
 853   
 854          /*g_pcapng_debug1("pcapng_read_simple_packet_block: packet data: packet_len %u",
 855                            wblock->data.simple_packet.packet_len);*/
 856   
 857          /* XXX - implement other linktypes then Ethernet */
 858          /* (or even better share the code with libpcap.c) */
 859   
 860          /* Ethernet FCS length, might be overwritten by "per packet" options */
 861          ((union wtap_pseudo_header *) wblock->pseudo_header)->eth.fcs_len = pn->if_fcslen;
Show more  
Show more  
Show more  




Change Warning 1046.30249 : Null Pointer Dereference

Priority:
State:
Finding:
Owner:
Note: