Change shift expressions to unsigned types. Shifting signed values to

a result that is not representable has undefined behaviour.
This commit is contained in:
Thomas Köppe 2018-01-16 16:04:17 +00:00 committed by Zack Middleton
parent 7e2aa2c627
commit ed1794fe17
6 changed files with 11 additions and 8 deletions

View file

@ -106,8 +106,11 @@ static void copy64(uint32_t *M, byte *in)
int i;
for (i=0;i<16;i++)
M[i] = (in[i*4+3]<<24) | (in[i*4+2]<<16) |
(in[i*4+1]<<8) | (in[i*4+0]<<0);
M[i] =
((uint32_t)in[i*4+3] << 24) |
((uint32_t)in[i*4+2] << 16) |
((uint32_t)in[i*4+1] << 8) |
((uint32_t)in[i*4+0] << 0) ;
}
static void copy4(byte *out,uint32_t x)

View file

@ -52,7 +52,7 @@ to the new value before sending out any replies.
#define FRAGMENT_SIZE (MAX_PACKETLEN - 100)
#define PACKET_HEADER 10 // two ints and a short
#define FRAGMENT_BIT (1<<31)
#define FRAGMENT_BIT (1U<<31)
cvar_t *showpackets;
cvar_t *showdrop;

View file

@ -103,7 +103,7 @@ static int isu8(uint32_t v)
static int NextConstant4(void)
{
return (code[pc] | (code[pc+1]<<8) | (code[pc+2]<<16) | (code[pc+3]<<24));
return ((unsigned int)code[pc] | ((unsigned int)code[pc+1]<<8) | ((unsigned int)code[pc+2]<<16) | ((unsigned int)code[pc+3]<<24));
}
static int Constant4( void ) {