diff --git a/src/devices/point-to-point/point-to-point-net-device.cc b/src/devices/point-to-point/point-to-point-net-device.cc index 2271cdba1..ce8abbc77 100644 --- a/src/devices/point-to-point/point-to-point-net-device.cc +++ b/src/devices/point-to-point/point-to-point-net-device.cc @@ -511,11 +511,19 @@ PointToPointNetDevice::Send( // Even if the transmitter is immediately available, we still enqueue and // dequeue the packet to hit the tracing hooks. // - m_queue->Enqueue (packet); - packet = m_queue->Dequeue (); - m_snifferTrace (packet); - m_promiscSnifferTrace (packet); - return TransmitStart (packet); + if (m_queue->Enqueue (packet) == true) + { + packet = m_queue->Dequeue (); + m_snifferTrace (packet); + m_promiscSnifferTrace (packet); + return TransmitStart (packet); + } + else + { + // Enqueue may fail (overflow) + m_macTxDropTrace (packet); + return false; + } } else {