All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] vfs: samples: fix memory leak
@ 2020-08-09 17:06 trix
  0 siblings, 0 replies; only message in thread
From: trix @ 2020-08-09 17:06 UTC (permalink / raw)
  To: dhowells, jlayton; +Cc: linux-kernel, Tom Rix

From: Tom Rix <trix@redhat.com>

clang static analysis reports this represenative problem

test-fsinfo.c:615:3: warning: Potential leak of memory pointed to by 'r'
                memset(r, 0xbd, buf_size);
                ^~~~~~

r dynamically allocated in a loop an increasing size.

	for (;;) {
		r = malloc(buf_size);
...
		buf_size = (ret + 4096 - 1) & ~(4096 - 1);
	}

The problem is that r is never freed at the bottom of the loop.
So free r.

Signed-off-by: Tom Rix <trix@redhat.com>
---
 samples/vfs/test-fsinfo.c  | 1 +
 samples/vfs/test-mntinfo.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/samples/vfs/test-fsinfo.c b/samples/vfs/test-fsinfo.c
index aa122fb555b6..d669201d03ac 100644
--- a/samples/vfs/test-fsinfo.c
+++ b/samples/vfs/test-fsinfo.c
@@ -622,6 +622,7 @@ static ssize_t get_fsinfo(const char *file, const char *name,
 		if (ret <= buf_size - 1)
 			break;
 		buf_size = (ret + 4096 - 1) & ~(4096 - 1);
+		free(r);
 	}
 
 	if (debug)
diff --git a/samples/vfs/test-mntinfo.c b/samples/vfs/test-mntinfo.c
index 40125ad81f17..54a6abf4a8b0 100644
--- a/samples/vfs/test-mntinfo.c
+++ b/samples/vfs/test-mntinfo.c
@@ -105,6 +105,7 @@ static void *get_attr_alloc(unsigned int mnt_id, unsigned int attr,
 			break;
 		}
 		buf_size = (ret + 4096 - 1) & ~(4096 - 1);
+		free(r);
 	}
 
 	return r;
-- 
2.18.1


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-08-09 17:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-09 17:06 [PATCH] vfs: samples: fix memory leak trix

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.