diff options
author | Mike Pall <mike> | 2014-02-19 22:05:34 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2014-02-19 22:05:34 +0100 |
commit | 1994a2453e91beafcc78e12051b44ccc7a41bf7b (patch) | |
tree | 6a9e3d9698039daab35e0dc3e4711ef1a89c7c04 | |
parent | 2bc63bb6affdb378c1698bd0f97bacb286a61a6f (diff) | |
download | luajit-1994a2453e91beafcc78e12051b44ccc7a41bf7b.tar.gz luajit-1994a2453e91beafcc78e12051b44ccc7a41bf7b.tar.bz2 luajit-1994a2453e91beafcc78e12051b44ccc7a41bf7b.zip |
FFI: Disallow nested VLS.
-rw-r--r-- | src/lj_cparse.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_cparse.c b/src/lj_cparse.c index 767ac179..6ffe16a2 100644 --- a/src/lj_cparse.c +++ b/src/lj_cparse.c | |||
@@ -1258,7 +1258,7 @@ static void cp_struct_layout(CPState *cp, CTypeID sid, CTInfo sattr) | |||
1258 | sinfo |= (info & (CTF_QUAL|CTF_VLA)); /* Merge pseudo-qualifiers. */ | 1258 | sinfo |= (info & (CTF_QUAL|CTF_VLA)); /* Merge pseudo-qualifiers. */ |
1259 | 1259 | ||
1260 | /* Check for size overflow and determine alignment. */ | 1260 | /* Check for size overflow and determine alignment. */ |
1261 | if (sz >= 0x20000000u || bofs + csz < bofs) { | 1261 | if (sz >= 0x20000000u || bofs + csz < bofs || (info & CTF_VLA)) { |
1262 | if (!(sz == CTSIZE_INVALID && ctype_isarray(info) && | 1262 | if (!(sz == CTSIZE_INVALID && ctype_isarray(info) && |
1263 | !(sinfo & CTF_UNION))) | 1263 | !(sinfo & CTF_UNION))) |
1264 | cp_err(cp, LJ_ERR_FFI_INVSIZE); | 1264 | cp_err(cp, LJ_ERR_FFI_INVSIZE); |