From f7c3aef8301bb5c1bff19ec3415631534ef7d095 Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Thu, 2 Jun 2016 10:52:06 +0100 Subject: [PATCH] don't blow up with bad modules --- C/modules.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/C/modules.c b/C/modules.c index 6f989eb21..98bcf81c3 100644 --- a/C/modules.c +++ b/C/modules.c @@ -405,7 +405,9 @@ restart: Term t1 = ArgOfTerm(1, t); tmod = t1; if (!IsVarTerm(tmod) && !IsAtomTerm(tmod)) { - return 0L; + if (modp) + *modp = tmod; + return t; } t = ArgOfTerm(2, t); goto restart; @@ -423,7 +425,7 @@ static Int yap_strip_module(USES_REGS1) { tmod = TermProlog; } t1 = Yap_YapStripModule(t1, &tmod); - if (!t1) { + if (!t1 || (!IsVarTerm(tmod) && !IsAtomTerm(tmod))) { Yap_Error(TYPE_ERROR_CALLABLE, t1, "trying to obtain module"); return FALSE; }