aboutsummaryrefslogtreecommitdiff
path: root/tools/coqdoc
diff options
context:
space:
mode:
authorHugo Herbelin2020-05-07 19:20:39 +0200
committerHugo Herbelin2020-05-11 21:56:00 +0200
commit632f709b95f4fa47e86e5c498b995eb9c2cf2ff6 (patch)
treefa8ee5ad72ac8e990bfa8c7e51185289803eb201 /tools/coqdoc
parent76f7adccc72e6e85bfc2aaec7c5f348e5966b024 (diff)
Checking validity of coqdoc file name.
This fixes #12265 (javascript injection vulnerability in file name).
Diffstat (limited to 'tools/coqdoc')
-rw-r--r--tools/coqdoc/dune2
-rw-r--r--tools/coqdoc/main.ml3
2 files changed, 4 insertions, 1 deletions
diff --git a/tools/coqdoc/dune b/tools/coqdoc/dune
index 9c0a6ccffe..e3c792f277 100644
--- a/tools/coqdoc/dune
+++ b/tools/coqdoc/dune
@@ -9,6 +9,6 @@
(name main)
(public_name coqdoc)
(package coq)
- (libraries str coq.config))
+ (libraries str coq.config coq.clib))
(ocamllex cpretty)
diff --git a/tools/coqdoc/main.ml b/tools/coqdoc/main.ml
index 1be247366d..6ebf9b71d6 100644
--- a/tools/coqdoc/main.ml
+++ b/tools/coqdoc/main.ml
@@ -127,6 +127,9 @@ let rec name_of_path p name dirname suffix =
let coq_module filename =
let bfname = Filename.chop_extension filename in
let dirname, fname = normalize_filename bfname in
+ let _ = match Unicode.ident_refutation fname with
+ | Some err -> eprintf "\ncoqdoc: not a valid filename %s.v\n" fname; exit 1
+ | None -> () in
let rec change_prefix = function
(* Follow coqc: if in scope of -R, substitute logical name *)
(* otherwise, keep only base name *)