>From 594e53fa4913b1cb6232dbcc73d905a94c0cae73 Mon Sep 17 00:00:00 2001 From: William Tambe <tambewilliam@xxxxxxxxx> Date: Sun, 1 Oct 2023 21:38:15 -0500 Subject: [PATCH] drivers/net/slip: prevent data alignment fault Prevent data alignment fault on architectures which cannot do unaligned memory access. --- drivers/net/slip/slhc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/slip/slhc.c b/drivers/net/slip/slhc.c index ba93bab948e0..08fd570a6d40 100644 --- a/drivers/net/slip/slhc.c +++ b/drivers/net/slip/slhc.c @@ -459,8 +459,8 @@ slhc_compress(struct slcompress *comp, unsigned char *icp, int isize, *cpp = ocp; *cp++ = changes; } - *(__sum16 *)cp = csum; - cp += 2; + *cp++ = (char)(csum&0xff); + *cp++ = (char)((csum>>8)&0xff); /* deltaS is now the size of the change section of the compressed header */ memcpy(cp,new_seq,deltaS); /* Write list of deltas */ memcpy(cp+deltaS,icp+hlen,isize-hlen); @@ -534,7 +534,7 @@ slhc_uncompress(struct slcompress *comp, unsigned char *icp, int isize) thp = &cs->cs_tcp; ip = &cs->cs_ip; - thp->check = *(__sum16 *)cp; + thp->check = (((__sum16)*cp)|(((__sum16)*(cp+1))<<8)); cp += 2; thp->psh = (changes & TCP_PUSH_BIT) ? 1 : 0; -- 2.34.1