On Jan 4, 2010, at 4:55 AM, Francesco RUNDO <francesco.rundo@st.com>
wrote:
Hi All,
I'm running LTP (I'm using ltp-full-20090731....but asap I will
upgrade to latest) on SH based platforms.
Now, during a test-session. I've noted that the test "mtest01"
reduced drastically the system memory and after its execution this
memory wasn't de-allocated.
I've analysed the mtest01.c code and I've noted that no "free()"
istruction was associated to the related malloc:
......
if((mem = (char*)malloc(chunksize)) == NULL) {
......
I've simply added a "free(mem)" of the allocated memory and the
issue was addressed successfully.
I've attached the trivial patch I've developed.
Best Regards,
--
Francesco
Added missed "free" istruction to release memory previosuly allocated.
Signed-off-by: Francesco Rundo <francesco.rundo@st.com>
--- ltp-full-20090731/testcases/kernel/mem/mtest01/
mtest01.c.origin 2009-02-26 13:02:27.000000000 +0100
+++ ltp-full-20090731/testcases/kernel/mem/mtest01/mtest01.c
2009-12-15 14:03:28.779240000 +0100
@@ -258,5 +258,8 @@
else
tst_resm(TPASS, "%llu kbytes allocated only.",
original_maxbytes/1024);
}
+
+ free(mem);
+
exit(0);
}
1. Does the version off cvs still have this issue?
2. Unless the test exits the code block immediately, I'd definitely do:
if (mem)
free (mem);
to avoid making a bad free call.