From 3f6e56eb8268d627f73f223ffeae941fa9938624 Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Tue, 9 Oct 2012 16:30:18 +0100 Subject: [PATCH] fix overflow in SWI interface code. --- library/dialect/swi/fli/swi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/library/dialect/swi/fli/swi.c b/library/dialect/swi/fli/swi.c index 46ce61217..47b21e0bd 100755 --- a/library/dialect/swi/fli/swi.c +++ b/library/dialect/swi/fli/swi.c @@ -843,6 +843,11 @@ X_API int PL_cons_functor_v(term_t d, functor_t f, term_t a0) X_API int PL_cons_list(term_t d, term_t h, term_t t) { CACHE_REGS + if (Unsigned(H) > Unsigned(ASP)-CreepFlag) { + if (!do_gc(0)) { + return FALSE; + } + } Yap_PutInSlot(d,MkPairTerm(Yap_GetFromSlot(h PASS_REGS),Yap_GetFromSlot(t PASS_REGS)) PASS_REGS); return TRUE; }