If the node id check failed, graph_lock was not taken before releasing.

Fixes: c59dac2ca14a ("graph: implement node operations")
Cc: sta...@dpdk.org

Signed-off-by: David Marchand <david.march...@redhat.com>
---
 lib/graph/node.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/graph/node.c b/lib/graph/node.c
index fc6345de07..149414dcd9 100644
--- a/lib/graph/node.c
+++ b/lib/graph/node.c
@@ -300,16 +300,16 @@ rte_node_edge_shrink(rte_node_t id, rte_edge_t size)
                if (node->id == id) {
                        if (node->nb_edges < size) {
                                rte_errno = E2BIG;
-                               goto fail;
+                       } else {
+                               node->nb_edges = size;
+                               rc = size;
                        }
-                       node->nb_edges = size;
-                       rc = size;
                        break;
                }
        }
 
-fail:
        graph_spinlock_unlock();
+fail:
        return rc;
 }
 
-- 
2.39.0

Reply via email to