371,375c371,374
< * *except* set data allocation as static... even if the original
< * packet's data was dynamic, we don't want to free it when the
< * new packet is deallocated. Note that if original packet used
< * dynamic data, user must guarantee that the new packet's
< * lifetime is less than that of the original packet. */
---
> * *except* if the original packet's data was dynamic, don't copy
> * that, as we can't guarantee that the new packet's lifetime is
> * less than that of the original packet. In this case the new
> * packet should allocate its own data. */
378c377,379
< data(NULL), staticData(false), dynamicData(false), arrayData(false),
---
> data(origPkt->staticData ? origPkt->data : NULL),
> staticData(origPkt->staticData),
> dynamicData(false), arrayData(false),