diff options
author | Mike Pall <mike> | 2022-01-15 18:32:34 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2022-01-15 18:32:34 +0100 |
commit | c21c6cb4170159250aa778ec888db7f919dfb0e9 (patch) | |
tree | d00555bb8692351df0c486f8cca0f6df77f7e5b4 /src/lj_serialize.c | |
parent | d5a237eae03d2ad346f82390836371a952e9a286 (diff) | |
download | luajit-c21c6cb4170159250aa778ec888db7f919dfb0e9.tar.gz luajit-c21c6cb4170159250aa778ec888db7f919dfb0e9.tar.bz2 luajit-c21c6cb4170159250aa778ec888db7f919dfb0e9.zip |
FFI: Ensure library is loaded before de-serializing FFI types.
Reported by ImagicTheCat.
Diffstat (limited to 'src/lj_serialize.c')
-rw-r--r-- | src/lj_serialize.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lj_serialize.c b/src/lj_serialize.c index d6551b11..d00bf7fa 100644 --- a/src/lj_serialize.c +++ b/src/lj_serialize.c | |||
@@ -417,6 +417,7 @@ static char *serialize_get(char *r, SBufExt *sbx, TValue *o) | |||
417 | uint32_t sz = tp == SER_TAG_COMPLEX ? 16 : 8; | 417 | uint32_t sz = tp == SER_TAG_COMPLEX ? 16 : 8; |
418 | GCcdata *cd; | 418 | GCcdata *cd; |
419 | if (LJ_UNLIKELY(r + sz > w)) goto eob; | 419 | if (LJ_UNLIKELY(r + sz > w)) goto eob; |
420 | if (LJ_UNLIKELY(!ctype_ctsG(G(sbufL(sbx))))) goto badtag; | ||
420 | cd = lj_cdata_new_(sbufL(sbx), | 421 | cd = lj_cdata_new_(sbufL(sbx), |
421 | tp == SER_TAG_INT64 ? CTID_INT64 : | 422 | tp == SER_TAG_INT64 ? CTID_INT64 : |
422 | tp == SER_TAG_UINT64 ? CTID_UINT64 : CTID_COMPLEX_DOUBLE, | 423 | tp == SER_TAG_UINT64 ? CTID_UINT64 : CTID_COMPLEX_DOUBLE, |