diff --git a/bacnet-stack/demo/mstpcap/main.c b/bacnet-stack/demo/mstpcap/main.c index 4e100ceb..c777e449 100644 --- a/bacnet-stack/demo/mstpcap/main.c +++ b/bacnet-stack/demo/mstpcap/main.c @@ -199,7 +199,8 @@ static void write_received_packet( fwrite(&ts_sec, sizeof(ts_sec), 1, pFile); fwrite(&ts_usec, sizeof(ts_usec), 1, pFile); if (mstp_port->DataLength) { - incl_len = orig_len = 8 + mstp_port->DataLength + 2; + max_data = min(mstp_port->InputBufferSize,mstp_port->DataLength); + incl_len = orig_len = 8 + max_data + 2; } else { incl_len = orig_len = 8; } @@ -215,7 +216,6 @@ static void write_received_packet( header[7] = mstp_port->HeaderCRCActual; fwrite(header, sizeof(header), 1, pFile); if (mstp_port->DataLength) { - max_data = min(mstp_port->InputBufferSize,mstp_port->DataLength); fwrite(mstp_port->InputBuffer, max_data, 1, pFile); fwrite((char *) &mstp_port->DataCRCActualMSB, 1, 1, pFile); fwrite((char *) &mstp_port->DataCRCActualLSB, 1, 1, pFile); diff --git a/bacnet-stack/ports/linux/mstpsnap.c b/bacnet-stack/ports/linux/mstpsnap.c index 6da74893..e9cfd74b 100644 --- a/bacnet-stack/ports/linux/mstpsnap.c +++ b/bacnet-stack/ports/linux/mstpsnap.c @@ -166,7 +166,7 @@ static void snap_received_packet( uint16_t mtu_len = 0; /* number of octets of packet saved in file */ unsigned i = 0; /* counter */ static uint8_t mtu[1500] = { 0 }; - size_t max_data = 0; + uint16_t max_data = 0; mtu[0] = 0; mtu[1] = 0; @@ -200,7 +200,7 @@ static void snap_received_packet( mtu[30] = mstp_port->HeaderCRCActual; mtu_len = 31; if (mstp_port->DataLength) { - max_data = min(mstp_port->InputBufferSize, mstp_port->DataLength); + max_data = min(mstp_port->InputBufferSize,mstp_port->DataLength); for (i = 0; i < max_data; i++) { mtu[31 + i] = mstp_port->InputBuffer[i]; } diff --git a/bacnet-stack/ports/linux/rx_fsm.c b/bacnet-stack/ports/linux/rx_fsm.c index e0715ba4..ee56bc17 100644 --- a/bacnet-stack/ports/linux/rx_fsm.c +++ b/bacnet-stack/ports/linux/rx_fsm.c @@ -193,7 +193,8 @@ static void write_received_packet( fwrite(&ts_sec, sizeof(ts_sec), 1, pFile); fwrite(&ts_usec, sizeof(ts_usec), 1, pFile); if (mstp_port->DataLength) { - incl_len = orig_len = 8 + mstp_port->DataLength + 2; + max_data = min(mstp_port->InputBufferSize, mstp_port->DataLength); + incl_len = orig_len = 8 + max_data + 2; } else { incl_len = orig_len = 8; } @@ -209,7 +210,6 @@ static void write_received_packet( header[7] = mstp_port->HeaderCRCActual; fwrite(header, sizeof(header), 1, pFile); if (mstp_port->DataLength) { - max_data = min(mstp_port->InputBufferSize, mstp_port->DataLength); fwrite(mstp_port->InputBuffer, max_data, 1, pFile); fwrite(&(mstp_port->DataCRCActualMSB), 1, 1, pFile); fwrite(&(mstp_port->DataCRCActualLSB), 1, 1, pFile); diff --git a/bacnet-stack/ports/win32/rx_fsm.c b/bacnet-stack/ports/win32/rx_fsm.c index a60dea17..471981c6 100644 --- a/bacnet-stack/ports/win32/rx_fsm.c +++ b/bacnet-stack/ports/win32/rx_fsm.c @@ -240,7 +240,8 @@ static void write_received_packet( fwrite(&ts_sec, sizeof(ts_sec), 1, pFile); fwrite(&ts_usec, sizeof(ts_usec), 1, pFile); if (mstp_port->DataLength) { - incl_len = orig_len = 8 + mstp_port->DataLength + 2; + max_data = min(mstp_port->InputBufferSize,mstp_port->DataLength); + incl_len = orig_len = 8 + max_data + 2; } else { incl_len = orig_len = 8; } @@ -256,7 +257,6 @@ static void write_received_packet( header[7] = mstp_port->HeaderCRCActual; fwrite(header, sizeof(header), 1, pFile); if (mstp_port->DataLength) { - fwrite(mstp_port->InputBuffer, mstp_port->DataLength, 1, pFile); fwrite(&(mstp_port->DataCRCActualMSB), 1, 1, pFile); fwrite(&(mstp_port->DataCRCActualLSB), 1, 1, pFile); }