aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2013-09-08 03:09:39 +0200
committerMike Pall <mike>2013-09-08 03:09:39 +0200
commit93c2b939bddbbe766f3215455d8144650df0780b (patch)
tree18cb447acdae0ffc143fc46b42bcc5ddf48aabef
parentb6ec7c7c86ac249ac40a241e1c9b47b729bbba3b (diff)
downloadluajit-93c2b939bddbbe766f3215455d8144650df0780b.tar.gz
luajit-93c2b939bddbbe766f3215455d8144650df0780b.tar.bz2
luajit-93c2b939bddbbe766f3215455d8144650df0780b.zip
FFI: Fix argument checks for ffi.string().
-rw-r--r--src/lib_ffi.c2
-rw-r--r--src/lj_crecord.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/lib_ffi.c b/src/lib_ffi.c
index f61fabc0..4503875a 100644
--- a/src/lib_ffi.c
+++ b/src/lib_ffi.c
@@ -657,7 +657,7 @@ LJLIB_CF(ffi_string) LJLIB_REC(.)
657 TValue *o = lj_lib_checkany(L, 1); 657 TValue *o = lj_lib_checkany(L, 1);
658 const char *p; 658 const char *p;
659 size_t len; 659 size_t len;
660 if (o+1 < L->top) { 660 if (o+1 < L->top && !tvisnil(o+1)) {
661 len = (size_t)ffi_checkint(L, 2); 661 len = (size_t)ffi_checkint(L, 2);
662 lj_cconv_ct_tv(cts, ctype_get(cts, CTID_P_CVOID), (uint8_t *)&p, o, 662 lj_cconv_ct_tv(cts, ctype_get(cts, CTID_P_CVOID), (uint8_t *)&p, o,
663 CCF_ARG(1)); 663 CCF_ARG(1));
diff --git a/src/lj_crecord.c b/src/lj_crecord.c
index df98e6ec..4f0dfa9a 100644
--- a/src/lj_crecord.c
+++ b/src/lj_crecord.c
@@ -1514,7 +1514,7 @@ void LJ_FASTCALL recff_ffi_string(jit_State *J, RecordFFData *rd)
1514 TRef tr = J->base[0]; 1514 TRef tr = J->base[0];
1515 if (tr) { 1515 if (tr) {
1516 TRef trlen = J->base[1]; 1516 TRef trlen = J->base[1];
1517 if (trlen) { 1517 if (!tref_isnil(trlen)) {
1518 trlen = crec_toint(J, cts, trlen, &rd->argv[1]); 1518 trlen = crec_toint(J, cts, trlen, &rd->argv[1]);
1519 tr = crec_ct_tv(J, ctype_get(cts, CTID_P_CVOID), 0, tr, &rd->argv[0]); 1519 tr = crec_ct_tv(J, ctype_get(cts, CTID_P_CVOID), 0, tr, &rd->argv[0]);
1520 } else { 1520 } else {