From db43d25559892883af83f6911c967905e03b37aa Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 17 Aug 2010 12:48:03 -0600 Subject: [PATCH] defend against a broken bytecode file containing a reference cycle --- src/racket/src/read.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/racket/src/read.c b/src/racket/src/read.c index fdce75a1f6..9610c23e37 100644 --- a/src/racket/src/read.c +++ b/src/racket/src/read.c @@ -4595,6 +4595,8 @@ static Scheme_Object *read_compact(CPort *port, int use_stack) v = port->symtab[l]; if (!v) { long save_pos = port->pos; + /* avoid cycles if marshaled form is broken: */ + port->symtab[l] = scheme_false; port->pos = port->shared_offsets[l - 1]; v = read_compact(port, 0); port->pos = save_pos;