From 041c78aa05a4ae2b87d2c969600e110e4fd4f510 Mon Sep 17 00:00:00 2001 From: Jason Andryuk Date: Tue, 10 Aug 2021 14:16:10 -0400 Subject: [PATCH] argo: Return EISCONN when already bound Calling bind multiple times would leak rings. Return -EISCONN for that case. Signed-off-by: Jason Andryuk --- argo-linux/argo-module.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/argo-linux/argo-module.c b/argo-linux/argo-module.c index 3a4e1b6..1251f80 100644 --- a/argo-linux/argo-module.c +++ b/argo-linux/argo-module.c @@ -2430,6 +2430,14 @@ argo_bind(struct argo_private *p, struct argo_ring_id *ring_id) return -EINVAL; } + if ( p->r ) + { + pr_debug("ring already connected %d -> %d:%d", p->r->id.domain_id, + p->r->id.aport, p->r->id.partner_id); + + return -EISCONN; + } + pr_debug("argo_bind: %d (d: %d) (s: %d)\n", p->ptype, ARGO_PTYPE_DGRAM, ARGO_PTYPE_STREAM);