Use protect-out
for unsafe operations
Disallows usage in sandboxes and similar contexts
This commit is contained in:
parent
6aa635d740
commit
c3a59ee1c4
|
@ -2,8 +2,8 @@
|
|||
|
||||
;; This module provides unsafe operations for Typed Racket
|
||||
|
||||
(provide unsafe-provide
|
||||
unsafe-require/typed)
|
||||
(provide (protect-out unsafe-provide
|
||||
unsafe-require/typed))
|
||||
|
||||
(require (for-syntax racket/base
|
||||
typed-racket/private/syntax-properties
|
||||
|
|
15
typed-racket-test/fail/sandboxed-unsafe-ops.rkt
Normal file
15
typed-racket-test/fail/sandboxed-unsafe-ops.rkt
Normal file
|
@ -0,0 +1,15 @@
|
|||
#;
|
||||
(exn-pred #rx"access disallowed by")
|
||||
#lang racket/base
|
||||
|
||||
;; This test checks that TR's unsafe libraries are not accessible
|
||||
;; from a sandboxed context
|
||||
|
||||
(require racket/sandbox)
|
||||
|
||||
(parameterize ([sandbox-memory-limit 1000])
|
||||
(define eval (make-evaluator 'typed/racket))
|
||||
(eval '(require typed/racket/unsafe))
|
||||
|
||||
;; should fail
|
||||
(eval '(unsafe-require/typed racket/base [values 3])))
|
Loading…
Reference in New Issue
Block a user