dcerpc/udp: fix int mishandling in opnum parsing

For Big Endian support in the protocol, the opnum would not be set
correctly.

Found using undefined sanitizer.
pull/3652/head
Victor Julien 7 years ago
parent 9aa4e53434
commit 87019ff22b

@ -242,8 +242,8 @@ static int DCERPCUDPParseHeader(Flow *f, void *dcerpcudp_state,
sstate->dcerpc.dcerpchdrudp.seqnum |= (uint32_t) *(p + 65) << 16;
sstate->dcerpc.dcerpchdrudp.seqnum |= (uint32_t) *(p + 66) << 8;
sstate->dcerpc.dcerpchdrudp.seqnum |= (uint32_t) *(p + 67);
sstate->dcerpc.dcerpchdrudp.opnum = *(p + 68) << 24;
sstate->dcerpc.dcerpchdrudp.opnum |= *(p + 69) << 16;
sstate->dcerpc.dcerpchdrudp.opnum = *(p + 68) << 8;
sstate->dcerpc.dcerpchdrudp.opnum |= *(p + 69);
sstate->dcerpc.dcerpchdrudp.ihint = *(p + 70) << 8;
sstate->dcerpc.dcerpchdrudp.ihint |= *(p + 71);
sstate->dcerpc.dcerpchdrudp.ahint = *(p + 72) << 8;

Loading…
Cancel
Save