ob-tangle: Make ls-style file mode regex stricter

* lisp/ob-tangle (org-babel-interpret-file-mode): Instead of allowing 9
characters from [rwx-], require [r-][w-][x-] repeated thrice.  This no
longer allows invalid ls-style file modes.
This commit is contained in:
TEC 2021-11-20 22:47:44 +08:00
parent ff6fd93876
commit 048f478799
Signed by: tec
GPG Key ID: 779591AFDB81F06C
1 changed files with 2 additions and 1 deletions

View File

@ -327,8 +327,9 @@ Did you give the decimal value %1$d by mistake?" mode)))
((string-match-p "^o0?[0-7][0-7][0-7]$" mode)
(string-to-number (replace-regexp-in-string "^o" "" mode) 8))
((string-match-p "^[ugoa]*\\(?:[+-=][rwxXstugo]*\\)+\\(,[ugoa]*\\(?:[+-=][rwxXstugo]*\\)+\\)*$" mode)
;; Match regexp taken from `file-modes-symbolic-to-number'.
(file-modes-symbolic-to-number mode org-babel-tangle-default-mode))
((string-match-p "^[rwx-]\\{9\\}$" mode)
((string-match-p "^\\(?:[r-][w-][x-]\\)\\{3\\}$" mode)
(file-modes-symbolic-to-number (concat "u=" (substring mode 0 3)
",g=" (substring mode 3 6)
",a=" (substring mode 6 9))