From 8983f87e92e41d3380058969a4d0ae59ed120e16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Bouet=20Smith?= Date: Sun, 9 Jun 2024 12:41:38 +0200 Subject: [PATCH] Add validation of input arguments to clones controller --- Source/Api/Controllers/ClonesController.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Source/Api/Controllers/ClonesController.cs b/Source/Api/Controllers/ClonesController.cs index df32918..6096be3 100644 --- a/Source/Api/Controllers/ClonesController.cs +++ b/Source/Api/Controllers/ClonesController.cs @@ -39,6 +39,11 @@ public Response> ListClones() { DatasetTypes = DatasetTypes.Filesystem | DatasetTypes.Volume }; + + if (!args.Validate(out var errors)) + { + return ToErrorResponse>(errors); + } var datasets = _zfs.Datasets.List(args); var clones = datasets.Where(d => d.IsClone); return new Response> { Data = clones }; @@ -53,6 +58,12 @@ public Response CreateClone(string dataset, string snapshot, [FromBody] CloneReq var properties = request.Properties.Select(p => new PropertyValue { Property = p.Name, Value = p.Value }).ToList(); args.Properties = properties; } + + if (!args.Validate(out var errors)) + { + return ToErrorResponse(errors); + } + _zfs.Snapshots.Clone(args); return new Response(); } @@ -67,6 +78,12 @@ public Response CreateClone(string dataset, string snapshot, [FromBody] CloneReq public Response PromoteClone(string name) { var args = new PromoteArgs { Name = name }; + + if (!args.Validate(out var errors)) + { + return ToErrorResponse(errors); + } + _zfs.Datasets.Promote(args); return new Response(); }