diff --git a/bacnet-stack/src/bip.c b/bacnet-stack/src/bip.c index 7cb6e092..1b78e8b0 100644 --- a/bacnet-stack/src/bip.c +++ b/bacnet-stack/src/bip.c @@ -312,8 +312,9 @@ uint16_t bip_receive( } } } else if (pdu[1] == BVLC_FORWARDED_NPDU) { - (void) decode_unsigned32(&pdu[4], (uint32_t *) & sin.sin_addr.s_addr); - (void) decode_unsigned16(&pdu[8], &sin.sin_port); + // next 2 lines - moved data is always in the network format + *(uint32_t *)&sin.sin_addr.s_addr = *(uint32_t *)&pdu[4]; + *(uint16_t *)&sin.sin_port = *(uint16_t *)&pdu[8]; if ((sin.sin_addr.s_addr == htonl(BIP_Address.s_addr)) && (sin.sin_port == htons(BIP_Port))) { /* ignore messages from me */