racket / racket/racket

sandbox with default configuration can no longer load `2htdp/image`

Open
#3,920 17 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Racket
Stars
5.2k
Forks
698
Avg merge
18h 34m
Merged PRs (30d)
5

Description

Origionaly from https://groups.google.com/forum/?fromgroups#!searchin/racket-users/libobj%7Csort:relevance/racket-users/W_-4aN7kPyI/cwgwz2xIBAAJ

Two small example of this:

(make-module-evaluator `(module m racket (require 2htdp/image)))
(make-evaluator 'racket #:requires '(2htdp/image))

These errors with one of the following, depending on the machine.

file-or-directory-modify-seconds: `read' access denied for
   /Users/florence/Library/Preferences/org.racket-lang.prefs.rktd
file-exists?: `exists' access denied for libobj.so
file-exists?: `exists' access denied for libobj.dylib
file-exists?: `exists' access denied for libpng16.so.16

I'm not sure when this broke, but it worked on 6.2.1 (When using the handin server at least).

I also have not been able to find workaround by setting sandbox-path-permissions, other than setting 'read for "/".

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the two examples using make-module-evaluator and make-evaluator with 2htdp/image, and compare the reported permission failures across machines. Read the sandbox-path-permissions behavior and the default sandbox configuration first. Done means the default configuration can load 2htdp/image without granting read access to the entire filesystem.

Written by the indexing model from the issue text.

Assessment

Domain
security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.