comparison lisp/server.el @ 105090:b9e58ef2bdb6

* server.el (server-ensure-safe-dir): Pass 'integer to `file-attributes', as suggested.
author Juanma Barranquero <lekktu@gmail.com>
date Fri, 18 Sep 2009 16:55:21 +0000
parents 68150c643e2e
children 84836b2f2c93
comparison
equal deleted inserted replaced
105089:30c99a719e21 105090:b9e58ef2bdb6
447 Creates the directory if necessary and makes sure: 447 Creates the directory if necessary and makes sure:
448 - there's no symlink involved 448 - there's no symlink involved
449 - it's owned by us 449 - it's owned by us
450 - it's not readable/writable by anybody else." 450 - it's not readable/writable by anybody else."
451 (setq dir (directory-file-name dir)) 451 (setq dir (directory-file-name dir))
452 (let ((attrs (file-attributes dir))) 452 (let ((attrs (file-attributes dir 'integer)))
453 (unless attrs 453 (unless attrs
454 (letf (((default-file-modes) ?\700)) (make-directory dir t)) 454 (letf (((default-file-modes) ?\700)) (make-directory dir t))
455 (setq attrs (file-attributes dir))) 455 (setq attrs (file-attributes dir 'integer)))
456 ;; Check that it's safe for use. 456 ;; Check that it's safe for use.
457 (unless (and (eq t (car attrs)) (eql (nth 2 attrs) (user-uid)) 457 (unless (and (eq t (car attrs)) (eql (nth 2 attrs) (user-uid))
458 (or (eq system-type 'windows-nt) 458 (or (eq system-type 'windows-nt)
459 (zerop (logand ?\077 (file-modes dir))))) 459 (zerop (logand ?\077 (file-modes dir)))))
460 (error "The directory %s is unsafe" dir)))) 460 (error "The directory %s is unsafe" dir))))