From 71325d9134905c5395be926ff59d6ac5091bf74a Mon Sep 17 00:00:00 2001 From: erenJag <64777133+erenJag@users.noreply.github.com> Date: Tue, 1 Dec 2020 14:42:53 +0100 Subject: [PATCH] Improve create alerts input (#493) * check decisions start_ip & end_ip fields --- pkg/apiserver/controllers/v1/alerts.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/apiserver/controllers/v1/alerts.go b/pkg/apiserver/controllers/v1/alerts.go index 57e2f485a..9fe3d5837 100644 --- a/pkg/apiserver/controllers/v1/alerts.go +++ b/pkg/apiserver/controllers/v1/alerts.go @@ -121,6 +121,12 @@ func (c *Controller) CreateAlert(gctx *gin.Context) { for _, alert := range input { if len(alert.Decisions) > 0 { log.Debugf("alert %s already has decisions, don't apply profiles", *alert.Message) + for _, decision := range alert.Decisions { + if decision.EndIP != 0 && decision.StartIP != 0 && decision.EndIP < decision.StartIP { + gctx.JSON(http.StatusBadRequest, gin.H{"message": "'start_ip' must be lower than or equal to 'end_ip' in decisions"}) + return + } + } } else { decisions, err := csprofiles.EvaluateProfiles(c.Profiles, alert) if err != nil {