Opened 11 years ago

Closed 11 years ago

#371 closed enhancement (fixed)

permissions and GET-DESCRIPTOR-FOR

Reported by: rme Owned by: rme
Priority: minor Milestone:
Component: Runtime (threads, GC) Version: trunk
Keywords: Cc:

Description

When the lisp's current directory is not writable, GET-DESCRIPTOR-FOR can fail.

If OBJECT is a stream, then the function tries to create a temporary file in the current directory. It should create the temporary file in /tmp (or whatever).

Change History (2)

comment:1 Changed 11 years ago by rme

  • Owner changed from gb to rme
  • Status changed from new to assigned

Test case:

? (cwd "/etc")
#P"/private/etc/"
? (let ((msg (with-output-to-string (s) (format s "hello world~%"))))
       (ccl:run-program "cat" '() :input (make-string-input-stream msg)))
> Error: Operation not permitted
> While executing: GET-DESCRIPTOR-FOR, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > 

comment:2 Changed 11 years ago by rme

  • Resolution set to fixed
  • Status changed from assigned to closed

See r11280.

This bakes in an assumption that there will be a writable /tmp, but that seems pretty reasonable. Note that Windows systems have their own GET-DESCRIPTOR-FOR function which creates a temporary file in a different way.

Note: See TracTickets for help on using tickets.