From 24ca10828832c858e367faffa1f7b1d4704fc336 Mon Sep 17 00:00:00 2001 From: Calvin Rose Date: Wed, 28 Jan 2026 10:54:47 -0600 Subject: [PATCH] Add some extra checks for marshalling code. --- src/core/corelib.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/core/corelib.c b/src/core/corelib.c index 75094612..e2450269 100644 --- a/src/core/corelib.c +++ b/src/core/corelib.c @@ -1354,12 +1354,16 @@ JanetTable *janet_core_env(JanetTable *replacements) { lidv = midv = janet_wrap_nil(); janet_resolve(env, janet_csymbol("load-image-dict"), &lidv); janet_resolve(env, janet_csymbol("make-image-dict"), &midv); - JanetTable *lid = janet_unwrap_table(lidv); - JanetTable *mid = janet_unwrap_table(midv); - for (int32_t i = 0; i < lid->capacity; i++) { - const JanetKV *kv = lid->data + i; - if (!janet_checktype(kv->key, JANET_NIL)) { - janet_table_put(mid, kv->value, kv->key); + + /* Check that we actually got tables - if we are using a smaller corelib, may not exist */ + if (janet_checktype(lidv, JANET_TABLE) && janet_checktype(midv, JANET_TABLE)) { + JanetTable *lid = janet_unwrap_table(lidv); + JanetTable *mid = janet_unwrap_table(midv); + for (int32_t i = 0; i < lid->capacity; i++) { + const JanetKV *kv = lid->data + i; + if (!janet_checktype(kv->key, JANET_NIL)) { + janet_table_put(mid, kv->value, kv->key); + } } }