diff --git a/dlls/cabinet/fci.c b/dlls/cabinet/fci.c index 8ea7c260343..70d4f3f170f 100644 --- a/dlls/cabinet/fci.c +++ b/dlls/cabinet/fci.c @@ -466,10 +466,13 @@ static cab_ULONG fci_get_checksum( const void *pv, UINT cb, cab_ULONG seed ) switch (cb % 4) { case 3: ul |= (((ULONG)(*pb++)) << 16); + /* fall through */ case 2: ul |= (((ULONG)(*pb++)) << 8); + /* fall through */ case 1: ul |= *pb; + /* fall through */ default: break; } diff --git a/dlls/cabinet/fdi.c b/dlls/cabinet/fdi.c index 04a629505a9..d091dbb2128 100644 --- a/dlls/cabinet/fdi.c +++ b/dlls/cabinet/fdi.c @@ -360,7 +360,9 @@ static cab_ULONG checksum(const cab_UBYTE *data, cab_UWORD bytes, cab_ULONG csum switch (bytes & 3) { case 3: ul |= *data++ << 16; + /* fall through */ case 2: ul |= *data++ << 8; + /* fall through */ case 1: ul |= *data; } csum ^= ul;