Using sizeof on a malloced pointer type will return the wordsize
which can often cause one to allocate a buffer much smaller than
it is needed. So, here do not use sizeof on pointer type.
Note that this has no effect on runtime because 'dsos' is a
pointer to a pointer.
Problem found using Coccinelle.
Signed-off-by: Vaishali Thakkar <[email protected]>
---
tools/perf/tests/dso-data.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/tests/dso-data.c b/tools/perf/tests/dso-data.c
index dc673ff..8cf0d9e 100644
--- a/tools/perf/tests/dso-data.c
+++ b/tools/perf/tests/dso-data.c
@@ -202,7 +202,7 @@ static int dsos__create(int cnt, int size)
{
int i;
- dsos = malloc(sizeof(dsos) * cnt);
+ dsos = malloc(sizeof(*dsos) * cnt);
TEST_ASSERT_VAL("failed to alloc dsos array", dsos);
for (i = 0; i < cnt; i++) {
--
2.1.4
Em Thu, Apr 28, 2016 at 10:16:57PM +0530, Vaishali Thakkar escreveu:
> Using sizeof on a malloced pointer type will return the wordsize
> which can often cause one to allocate a buffer much smaller than
> it is needed. So, here do not use sizeof on pointer type.
>
> Note that this has no effect on runtime because 'dsos' is a
> pointer to a pointer.
>
> Problem found using Coccinelle.
Thanks, applied.
- Arnaldo