According to mail from Paul Long at Microsoft, in the 1.x NetMon file
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Wed, 21 Jul 2010 16:25:59 +0000 (16:25 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Wed, 21 Jul 2010 16:25:59 +0000 (16:25 +0000)
format, the time offset from the start of the capture always had a
positive value, so it's an unsigned value.  (In newer versions of NetMon
3.x, the capture can start before the "capture start" time stamp is set,
so packets can have a *negative* offset from the capture start time
stamp.  Those captures are in the 2.x file format.)

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@33607 f5534014-38df-0310-8fa8-9805f1628bb7

wiretap/netmon.c

index a5ac170995212a92d093ba4aa9947a34e7f19396..761b7afbc07efadaf0b48c36e7d7b7180a68ecbe 100644 (file)
@@ -516,7 +516,13 @@ again:
        switch (netmon->version_major) {
 
        case 1:
-               delta = ((gint32)pletohl(&hdr.hdr_1_x.ts_delta))*1000;
+               /*
+                * According to Paul Long, this offset is unsigned.
+                * It's 32 bits, so the maximum value will fit in
+                * a gint64 such as delta, even after multiplying
+                * it by 1000.
+                */
+               delta = ((guint32)pletohl(&hdr.hdr_1_x.ts_delta))*1000;
                break;
 
        case 2: