src/internet/model/icmpv6-header.cc
changeset 7416 91df05070541
parent 7385 10beb0e53130
child 9251 7c3f81b720a7
--- a/src/internet/model/icmpv6-header.cc	Wed Aug 10 12:39:19 2011 -0400
+++ b/src/internet/model/icmpv6-header.cc	Wed Aug 10 13:09:23 2011 -0400
@@ -1008,7 +1008,7 @@
 uint32_t Icmpv6DestinationUnreachable::Deserialize (Buffer::Iterator start)
 {
   uint16_t length = start.GetSize () - 8;
-  uint8_t data[length];
+  uint8_t* data = new uint8_t[length];
   Buffer::Iterator i = start;
 
   SetType (i.ReadU8 ());
@@ -1018,6 +1018,7 @@
   i.Read (data, length);
   m_packet = Create<Packet> (data, length);
 
+  delete[] data;
   return GetSerializedSize ();
 }
 
@@ -1106,7 +1107,7 @@
 uint32_t Icmpv6TooBig::Deserialize (Buffer::Iterator start) 
 {
   uint16_t length = start.GetSize () - 8;
-  uint8_t data[length];
+  uint8_t* data = new uint8_t[length];
   Buffer::Iterator i = start;
 
   SetType (i.ReadU8 ());
@@ -1116,6 +1117,7 @@
   i.Read (data, length);
   m_packet = Create<Packet> (data, length);
 
+  delete[] data;
   return GetSerializedSize ();
 }
 
@@ -1193,7 +1195,7 @@
 uint32_t Icmpv6TimeExceeded::Deserialize (Buffer::Iterator start)
 {
   uint16_t length = start.GetSize () - 8;
-  uint8_t data[length];
+  uint8_t* data = new uint8_t[length];
   Buffer::Iterator i = start;
 
   SetType (i.ReadU8 ());
@@ -1203,6 +1205,7 @@
   i.Read (data, length);
   m_packet = Create<Packet> (data, length);
 
+  delete[] data;
   return GetSerializedSize ();
 }
 
@@ -1291,7 +1294,7 @@
 uint32_t Icmpv6ParameterError::Deserialize (Buffer::Iterator start) 
 {
   uint16_t length = start.GetSize () - 8;
-  uint8_t data[length];
+  uint8_t* data = new uint8_t[length];
   Buffer::Iterator i = start;
 
   SetType (i.ReadU8 ());
@@ -1300,6 +1303,7 @@
   SetPtr (i.ReadNtohU32 ());
   i.Read (data, length);
   m_packet = Create<Packet> (data, length);
+  delete[] data;
 
   return GetSerializedSize ();
 }
@@ -1777,9 +1781,10 @@
   i.ReadU32 ();
 
   uint32_t len2 = (GetLength () - 1) * 8;
-  uint8_t buff[len2];
+  uint8_t* buff = new uint8_t[len2];
   i.Read (buff, len2);
   m_packet = Create<Packet> (buff, len2);
+  delete[] buff;
 
   return GetSerializedSize ();
 }