components/nmap/patches/nping-ProbeMode.cc.patch
author Lukas Rovensky <Lukas.Rovensky@oracle.com>
Thu, 28 Apr 2016 02:10:15 -0700
changeset 5878 85ea3e08eed7
parent 5798 7dcc6a44422d
permissions -rw-r--r--
23133251 Upgrade DBI to 1.636
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5798
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     1
# SPARC misalignment bug: 21492790
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     2
# Internal patch.
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     3
# Most likely not for upstream.
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     4
--- nmap-7.01/nping/ProbeMode.cc	2015-06-27 01:21:53.000000000 -0700
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     5
+++ nmap-7.01/nping/ProbeMode.cc	2016-03-17 09:21:12.931989483 -0700
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     6
@@ -1621,7 +1621,8 @@
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     7
  char final_output[65535];
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     8
  nsock_event_id ev_id;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     9
  struct timeval *t = (struct timeval *)nsock_gettimeofday();
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    10
- const unsigned char *packet=NULL;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    11
+ unsigned char *packet=NULL;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    12
+ const unsigned char *pkt = NULL;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    13
  const unsigned char *link=NULL;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    14
  size_t linklen=0;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    15
  size_t packetlen=0;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    16
@@ -1633,8 +1634,11 @@
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    17
  NpingTarget *trg=NULL;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    18
  u16 *prt=NULL;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    19
  u8 proto=0;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    20
+ int r = 0;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    21
+ unsigned char *p;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    22
  bool ip=false;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    23
- memset(final_output, 0, sizeof(final_output));
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    24
+
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    25
+ (void) std::memset(final_output, 0, sizeof(final_output));
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    26
 
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    27
  nping_print(DBG_4, "nping_event_handler(): Received callback of type %s with status %s",
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    28
                   nse_type2str(type), nse_status2str(status));
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    29
@@ -1687,7 +1691,18 @@
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    30
        case NSE_TYPE_PCAP_READ:
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    31
 
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    32
             /* Read a packet */
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    33
-            nse_readpcap(nse, &link, &linklen, &packet, &packetlen, NULL, &pcaptime);
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    34
+            nse_readpcap(nse, &link, &linklen, &pkt, &packetlen, NULL,
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    35
+                         &pcaptime);
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    36
+            r = posix_memalign((void**) &p, 8U, (size_t) packetlen);
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    37
+            if (r != 0) {
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    38
+              nping_warning(QT_2,
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    39
+                            "posix_memalign failed (%i). trying malloc", r);
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    40
+              p = (unsigned char*) safe_malloc(packetlen);
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    41
+            }
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    42
+
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    43
+            packet = p;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    44
+            (void) std::memcpy(const_cast<void*>(reinterpret_cast<const void*>(packet)),
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    45
+                               const_cast<void*>(reinterpret_cast<const void*>(pkt)), packetlen);
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    46
 
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    47
             /* If we are on a Ethernet network, extract the next packet protocol
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    48
              * from the Ethernet frame. */
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    49
@@ -1821,6 +1836,8 @@
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    50
  } else{
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    51
     nping_warning(QT_2, "nping_event_handler(): Unknown status code %d\n", status);
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    52
  }
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    53
+
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    54
+ std::free(packet);
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    55
  return;
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    56
 
7dcc6a44422d 21492790 nping on SPARC dumps core due to bus error
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    57
 } /* End of nping_event_handler() */