[PATCH] ocxl: Fix potential memory leak on context creation

Subsystems: char and misc drivers, ocxl (open coherent accelerator processor interface opencapi) driver, the rest

STALE2631d

3 messages, 2 authors, 2019-05-20 · open the first message on its own page

[PATCH] ocxl: Fix potential memory leak on context creation

From: Frederic Barrat <hidden>
Date: 2019-05-17 14:22:34

If we couldn't fully init a context, we were leaking memory.

Fixes: b9721d275cc2 ("ocxl: Allow external drivers to use OpenCAPI contexts")
Signed-off-by: Frederic Barrat <redacted>
---
 drivers/misc/ocxl/context.c | 1 +
 1 file changed, 1 insertion(+)
diff --git a/drivers/misc/ocxl/context.c b/drivers/misc/ocxl/context.c
index bab9c9364184..ab93156aa83e 100644
--- a/drivers/misc/ocxl/context.c
+++ b/drivers/misc/ocxl/context.c
@@ -22,6 +22,7 @@ int ocxl_context_alloc(struct ocxl_context **context, struct ocxl_afu *afu,
 			afu->pasid_base + afu->pasid_max, GFP_KERNEL);
 	if (pasid < 0) {
 		mutex_unlock(&afu->contexts_lock);
+		kfree(*context);
 		return pasid;
 	}
 	afu->pasid_count++;
-- 
2.21.0

Re: [PATCH] ocxl: Fix potential memory leak on context creation

From: Andrew Donnellan <hidden>
Date: 2019-05-20 01:47:41

On 18/5/19 12:20 am, Frederic Barrat wrote:
If we couldn't fully init a context, we were leaking memory.

Fixes: b9721d275cc2 ("ocxl: Allow external drivers to use OpenCAPI contexts")
Signed-off-by: Frederic Barrat <redacted>
Acked-by: Andrew Donnellan <redacted>
quoted hunk
---
  drivers/misc/ocxl/context.c | 1 +
  1 file changed, 1 insertion(+)
diff --git a/drivers/misc/ocxl/context.c b/drivers/misc/ocxl/context.c
index bab9c9364184..ab93156aa83e 100644
--- a/drivers/misc/ocxl/context.c
+++ b/drivers/misc/ocxl/context.c
@@ -22,6 +22,7 @@ int ocxl_context_alloc(struct ocxl_context **context, struct ocxl_afu *afu,
  			afu->pasid_base + afu->pasid_max, GFP_KERNEL);
  	if (pasid < 0) {
  		mutex_unlock(&afu->contexts_lock);
+		kfree(*context);
(defensive programming: set *context = NULL so that if the caller 
ignores the return code we get an obvious crash)
  		return pasid;
  	}
  	afu->pasid_count++;
-- 
Andrew Donnellan              OzLabs, ADL Canberra
ajd@linux.ibm.com             IBM Australia Limited

Re: [PATCH] ocxl: Fix potential memory leak on context creation

From: Frederic Barrat <hidden>
Date: 2019-05-20 06:55:22


Le 20/05/2019 à 03:45, Andrew Donnellan a écrit :
On 18/5/19 12:20 am, Frederic Barrat wrote:
quoted
If we couldn't fully init a context, we were leaking memory.

Fixes: b9721d275cc2 ("ocxl: Allow external drivers to use OpenCAPI 
contexts")
Signed-off-by: Frederic Barrat <redacted>
Acked-by: Andrew Donnellan <redacted>
quoted
---
  drivers/misc/ocxl/context.c | 1 +
  1 file changed, 1 insertion(+)
diff --git a/drivers/misc/ocxl/context.c b/drivers/misc/ocxl/context.c
index bab9c9364184..ab93156aa83e 100644
--- a/drivers/misc/ocxl/context.c
+++ b/drivers/misc/ocxl/context.c
@@ -22,6 +22,7 @@ int ocxl_context_alloc(struct ocxl_context 
**context, struct ocxl_afu *afu,
              afu->pasid_base + afu->pasid_max, GFP_KERNEL);
      if (pasid < 0) {
          mutex_unlock(&afu->contexts_lock);
+        kfree(*context);
(defensive programming: set *context = NULL so that if the caller 
ignores the return code we get an obvious crash)

Good point. v2 on its way

quoted
          return pasid;
      }
      afu->pasid_count++;

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help