diff --git a/src/app-layer-dcerpc-udp.c b/src/app-layer-dcerpc-udp.c index 957253bb7e..8a518f13d3 100644 --- a/src/app-layer-dcerpc-udp.c +++ b/src/app-layer-dcerpc-udp.c @@ -215,8 +215,8 @@ static int DCERPCUDPParseHeader(Flow *f, void *dcerpcudp_state, sstate->dcerpc.dcerpchdrudp.seqnum |= *(p + 65) << 16; sstate->dcerpc.dcerpchdrudp.seqnum |= *(p + 66) << 8; sstate->dcerpc.dcerpchdrudp.seqnum |= *(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; diff --git a/src/app-layer-smb2.c b/src/app-layer-smb2.c index c3987cec2f..10d494cc94 100644 --- a/src/app-layer-smb2.c +++ b/src/app-layer-smb2.c @@ -128,7 +128,7 @@ static uint32_t SMB2ParseHeader(void *smb2_state, AppLayerParserState *pstate, sstate->smb2.MessageId = *(p + 24); sstate->smb2.MessageId |= *(p + 25) << 8; sstate->smb2.MessageId |= *(p + 26) << 16; - sstate->smb2.MessageId |= *(p + 27) << 24; + sstate->smb2.MessageId |= (uint64_t)*(p + 27) << 24; sstate->smb2.MessageId |= (uint64_t) *(p + 28) << 32; sstate->smb2.MessageId |= (uint64_t) *(p + 29) << 40; sstate->smb2.MessageId |= (uint64_t) *(p + 30) << 48; @@ -144,7 +144,7 @@ static uint32_t SMB2ParseHeader(void *smb2_state, AppLayerParserState *pstate, sstate->smb2.SessionId = *(p + 40); sstate->smb2.SessionId |= *(p + 41) << 8; sstate->smb2.SessionId |= *(p + 42) << 16; - sstate->smb2.SessionId |= *(p + 43) << 24; + sstate->smb2.SessionId |= (uint64_t)*(p + 43) << 24; sstate->smb2.SessionId |= (uint64_t) *(p + 44) << 32; sstate->smb2.SessionId |= (uint64_t) *(p + 45) << 40; sstate->smb2.SessionId |= (uint64_t) *(p + 46) << 48; @@ -253,25 +253,25 @@ static uint32_t SMB2ParseHeader(void *smb2_state, AppLayerParserState *pstate, sstate->smb2.MessageId = *(p++); if (!(--input_len)) break; case 29: - sstate->smb2.MessageId = *(p++) << 8; + sstate->smb2.MessageId |= *(p++) << 8; if (!(--input_len)) break; case 30: - sstate->smb2.MessageId = *(p++) << 16; + sstate->smb2.MessageId |= *(p++) << 16; if (!(--input_len)) break; case 31: - sstate->smb2.MessageId = *(p++) << 24; + sstate->smb2.MessageId |= (uint64_t)*(p++) << 24; if (!(--input_len)) break; case 32: - sstate->smb2.MessageId = (uint64_t) *(p++) << 32; + sstate->smb2.MessageId |= (uint64_t) *(p++) << 32; if (!(--input_len)) break; case 33: - sstate->smb2.MessageId = (uint64_t) *(p++) << 40; + sstate->smb2.MessageId |= (uint64_t) *(p++) << 40; if (!(--input_len)) break; case 34: - sstate->smb2.MessageId = (uint64_t) *(p++) << 48; + sstate->smb2.MessageId |= (uint64_t) *(p++) << 48; if (!(--input_len)) break; case 35: - sstate->smb2.MessageId = (uint64_t) *(p++) << 56; + sstate->smb2.MessageId |= (uint64_t) *(p++) << 56; if (!(--input_len)) break; case 36: sstate->smb2.ProcessId = *(p++); @@ -307,7 +307,7 @@ static uint32_t SMB2ParseHeader(void *smb2_state, AppLayerParserState *pstate, sstate->smb2.SessionId |= *(p++) << 16; if (!(--input_len)) break; case 47: - sstate->smb2.SessionId |= *(p++) << 24; + sstate->smb2.SessionId |= (uint64_t)*(p++) << 24; if (!(--input_len)) break; case 48: sstate->smb2.SessionId |= (uint64_t) *(p++) << 32;