From f02d19553cd96eb6dba3621dd0615362eae9b8cd Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Fri, 16 Sep 2011 09:21:33 -0400 Subject: [PATCH] Protect against bad values in `current-module-declare-name'. Closes PR 12125 --- collects/racket/sandbox.rkt | 3 +++ collects/tests/racket/sandbox.rktl | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/collects/racket/sandbox.rkt b/collects/racket/sandbox.rkt index 990d4176d9..9b3068f701 100644 --- a/collects/racket/sandbox.rkt +++ b/collects/racket/sandbox.rkt @@ -897,6 +897,9 @@ ,@(sandbox-path-permissions))] ;; general info [current-command-line-arguments '#()] + ;; prevent a potential value here from messing up creating the sandboxed + ;; module + [current-module-declare-name #f] ;; restrict the sandbox context from this point [current-security-guard (let ([g (sandbox-security-guard)]) (if (security-guard? g) g (g)))] diff --git a/collects/tests/racket/sandbox.rktl b/collects/tests/racket/sandbox.rktl index 61a5285941..a17f1ca595 100644 --- a/collects/tests/racket/sandbox.rktl +++ b/collects/tests/racket/sandbox.rktl @@ -500,4 +500,11 @@ )) +(parameterize ([current-module-declare-name (make-resolved-module-path 'junk)]) + (define (avoid-module-declare-name) + (with-handlers ([exn? (lambda (_) #f)]) + (kill-evaluator (make-evaluator 'racket/base)) + #t)) + (test #t avoid-module-declare-name)) + (report-errs)