Page Menu
Home
VyOS Platform
Search
Configure Global Search
Log In
Files
F119063727
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/src/validate_value.ml b/src/validate_value.ml
index 02cd15a40..0b4148fea 100644
--- a/src/validate_value.ml
+++ b/src/validate_value.ml
@@ -1,51 +1,50 @@
type check = Regex of string | Exec of string
let validate_value buf value_constraint value =
- match value_constraint with
- | Regex s ->
- (try
- let _ = Pcre.exec ~pat:s value in true
- with Not_found -> false)
- | Exec c ->
- (* XXX: Unix.open_process_in is "shelling out", which is a bad idea on multiple levels,
- especially when the input comes directly from the user...
- We should do something about it.
- *)
- let chan = Unix.open_process_in (Printf.sprintf "%s \'%s\' 2>&1" c value) in
- let out = try CCIO.read_all chan with _ -> "" in
- let result = Unix.close_process_in chan in
- match result with
- | Unix.WEXITED 0 -> true
- | Unix.WEXITED 127 ->
- let () = Printf.printf "Could not execute validator %s" c in
- false
- | _ ->
- let () = Buffer.add_string buf out; Buffer.add_string buf "\n" in
- false
+ match value_constraint with
+ | Regex s ->
+ (try let _ = Pcre.exec ~pat:s value in true
+ with Not_found -> false)
+ | Exec c ->
+ (* XXX: Unix.open_process_in is "shelling out", which is a bad idea on multiple levels,
+ especially when the input comes directly from the user...
+ We should do something about it.
+ *)
+ let chan = Unix.open_process_in (Printf.sprintf "%s \'%s\' 2>&1" c value) in
+ let out = try CCIO.read_all chan with _ -> "" in
+ let result = Unix.close_process_in chan in
+ match result with
+ | Unix.WEXITED 0 -> true
+ | Unix.WEXITED 127 ->
+ let () = Printf.printf "Could not execute validator %s" c in
+ false
+ | _ ->
+ let () = Buffer.add_string buf out; Buffer.add_string buf "\n" in
+ false
let value = ref ""
let checks = ref []
let args = [
- ("--regex", Arg.String (fun s -> checks := (Regex s) :: !checks), "Check the value against a regex");
- ("--exec", Arg.String (fun s -> checks := (Exec s) :: !checks), "Check the value against an external command");
- ("--value", Arg.String (fun s -> value := s), "Value to check");
+ ("--regex", Arg.String (fun s -> checks := (Regex s) :: !checks), "Check the value against a regex");
+ ("--exec", Arg.String (fun s -> checks := (Exec s) :: !checks), "Check the value against an external command");
+ ("--value", Arg.String (fun s -> value := s), "Value to check");
]
let usage = Printf.sprintf "Usage: %s [OPTIONS] <number>" Sys.argv.(0)
let () = Arg.parse args (fun _ -> ()) usage
let _ =
let buf = Buffer.create 4096 in
let value = !value in
let checks = !checks in
match checks with
| [] -> exit 0
| _ ->
List.iter (fun c -> if (validate_value buf c value) then exit 0 else ()) checks;
(* If we got this far, value validation failed.
Show the user output from the validators.
*)
Buffer.contents buf |> print_endline;
exit 1
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Fri, Nov 6, 9:03 AM (1 d, 3 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4620631
Default Alt Text
(3 KB)
Attached To
Mode
rVYOSONEX vyos-1x
Attached
Detach File
Event Timeline
Log In to Comment