From 41109f442a3c7e0079de3de6245761a59c82f429 Mon Sep 17 00:00:00 2001 From: Ekaterina Pavlova Date: Tue, 21 May 2024 17:45:34 +0300 Subject: [PATCH] oracle: add length check o.MainCfg.NeoFS.Nodes Prevent the risk of a division by zero error when accessing the `o.MainCfg.NeoFS.Nodes[index]` array. Close #3419 Signed-off-by: Ekaterina Pavlova --- pkg/services/oracle/request.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/services/oracle/request.go b/pkg/services/oracle/request.go index 6267f55d0..1607fa56a 100644 --- a/pkg/services/oracle/request.go +++ b/pkg/services/oracle/request.go @@ -157,6 +157,11 @@ func (o *Oracle) processRequest(priv *keys.PrivateKey, req request) error { resp.Code = transaction.Error } case neofs.URIScheme: + if len(o.MainCfg.NeoFS.Nodes) == 0 { + o.Log.Warn("no NeoFS nodes configured", zap.String("url", req.Req.URL)) + resp.Code = transaction.Error + break + } ctx, cancel := context.WithTimeout(context.Background(), o.MainCfg.NeoFS.Timeout) defer cancel() index := (int(req.ID) + incTx.attempts) % len(o.MainCfg.NeoFS.Nodes)