Skip to content

Commit 54cbba0

Browse files
committed
bugfix for PCAP Frame timestamp out of range handling
1 parent dbca330 commit 54cbba0

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

pcapkit/protocols/misc/pcap/frame.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
from pcapkit.protocols.data.misc.pcap.frame import FrameInfo as Data_FrameInfo
3535
from pcapkit.protocols.protocol import Protocol
3636
from pcapkit.protocols.schema.misc.pcap.frame import Frame as Schema_Frame
37-
from pcapkit.utilities.exceptions import UnsupportedCall
38-
from pcapkit.utilities.warnings import RegistryWarning, warn
37+
from pcapkit.utilities.exceptions import UnsupportedCall, stacklevel
38+
from pcapkit.utilities.warnings import ProtocolWarning, RegistryWarning, warn
3939

4040
if TYPE_CHECKING:
4141
from datetime import datetime as dt_type
@@ -215,7 +215,12 @@ def read(self, length: 'Optional[int]' = None, *, _read: 'bool' = True, **kwargs
215215
else:
216216
_epch = _tsss + decimal.Decimal(_tsus) / 1_000_000
217217
_irat = _epch.as_integer_ratio()
218-
_time = datetime.datetime.fromtimestamp(_irat[0] / _irat[1])
218+
219+
try:
220+
_time = datetime.datetime.fromtimestamp(_irat[0] / _irat[1])
221+
except ValueError:
222+
warn(f'PCAP: invalid timestamp: {_epch}', ProtocolWarning, stacklevel=stacklevel())
223+
_time = datetime.datetime.fromtimestamp(0, datetime.timezone.utc)
219224

220225
frame = Data_Frame(
221226
frame_info=Data_FrameInfo(

0 commit comments

Comments
 (0)