From e4c7d8b38040518d42599eef8ddb5e67aa967a9c Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 30 Mar 2026 20:41:59 +0200 Subject: FFI: Shrink container of packed bitfield. Reported by Huang Haiyang. #1451 --- src/lj_cparse.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/lj_cparse.c') diff --git a/src/lj_cparse.c b/src/lj_cparse.c index 45b05b36..f5c93d2e 100644 --- a/src/lj_cparse.c +++ b/src/lj_cparse.c @@ -1307,6 +1307,8 @@ static void cp_struct_layout(CPState *cp, CTypeID sid, CTInfo sattr) ct->info = CTINFO(CT_FIELD, ctype_cid(ct->info)); ct->size = (bofs >> 3); /* Store field offset. */ } else { + if (csz > amask+1 && bsz <= amask+1) + csz = amask+1; /* Shrink container of packed bitfield. */ ct->info = CTINFO(CT_BITFIELD, (info & (CTF_QUAL|CTF_UNSIGNED|CTF_BOOL)) + (csz << (CTSHIFT_BITCSZ-3)) + (bsz << CTSHIFT_BITBSZ)); -- cgit v1.2.3-55-g6feb