diff --git a/racket/src/io/port/file-position.rkt b/racket/src/io/port/file-position.rkt index 280c65b19f..cbf7505484 100644 --- a/racket/src/io/port/file-position.rkt +++ b/racket/src/io/port/file-position.rkt @@ -30,6 +30,11 @@ (lambda (p) (or (exact-nonnegative-integer? p) (eof-object? p))) #:contract "(or/c exact-nonnegative-integer? eof-object?)" pos) + (when (and (number? p) (pos . >= . (expt 2 63))) + (raise-arguments-error who + "new position is too large" + "port" p + "position" pos)) (let ([cp (cond [(input-port? p) (->core-input-port p)] [else (->core-output-port p)])])