2016-04-12 20:55:15

by Maxim Zhukov

[permalink] [raw]
Subject: [PATCH V2 0/2] scripts: small fixes

This patch series fixed small bugs intro scripts folder

Maxim Zhukov (2):
scripts: genksyms: fix resource leak
scripts: dtc: fix memory leak after realloc

scripts/dtc/fdtput.c | 10 +++++++---
scripts/genksyms/genksyms.c | 3 +++
2 files changed, 10 insertions(+), 3 deletions(-)

--
2.7.1.1.g3617aa0


2016-04-12 20:55:24

by Maxim Zhukov

[permalink] [raw]
Subject: [PATCH V2 2/2] scripts: dtc: fix memory leak after realloc

This commit fixed memory leak after errors realloc.

Signed-off-by: Maxim Zhukov <[email protected]>
---
scripts/dtc/fdtput.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/scripts/dtc/fdtput.c b/scripts/dtc/fdtput.c
index f2197f5..1042319 100644
--- a/scripts/dtc/fdtput.c
+++ b/scripts/dtc/fdtput.c
@@ -75,8 +75,9 @@ static int encode_value(struct display_info *disp, char **arg, int arg_count,
char *ptr; /* pointer to current value position */
int len; /* length of this cell/string/byte */
int ival;
- int upto; /* the number of bytes we have written to buf */
+ int upto; /* the number of bytes we have written to buf */
char fmt[3];
+ void *save_ptr = NULL; /* save pointer to realloc */

upto = 0;

@@ -96,12 +97,15 @@ static int encode_value(struct display_info *disp, char **arg, int arg_count,
/* enlarge our value buffer by a suitable margin if needed */
if (upto + len > value_size) {
value_size = (upto + len) + 500;
- value = realloc(value, value_size);
- if (!value) {
+ void *save_ptr = realloc(value, value_size);
+
+ if (!save_ptr) {
+ free(value);
fprintf(stderr, "Out of mmory: cannot alloc "
"%d bytes\n", value_size);
return -1;
}
+ value = save_ptr;
}

ptr = value + upto;
--
2.7.1.1.g3617aa0

2016-04-12 20:55:54

by Maxim Zhukov

[permalink] [raw]
Subject: [PATCH V2 1/2] scripts: genksyms: fix resource leak

This commit fixed resource leak at func main

Signed-off-by: Maxim Zhukov <[email protected]>
---
scripts/genksyms/genksyms.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/scripts/genksyms/genksyms.c b/scripts/genksyms/genksyms.c
index dafaf96..06121ce 100644
--- a/scripts/genksyms/genksyms.c
+++ b/scripts/genksyms/genksyms.c
@@ -873,5 +873,8 @@ int main(int argc, char **argv)
(double)nsyms / (double)HASH_BUCKETS);
}

+ if (dumpfile)
+ fclose(dumpfile);
+
return errors != 0;
}
--
2.7.1.1.g3617aa0

2016-04-12 21:11:47

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH V2 2/2] scripts: dtc: fix memory leak after realloc

On Tue, Apr 12, 2016 at 3:55 PM, Maxim Zhukov
<[email protected]> wrote:
> This commit fixed memory leak after errors realloc.
>
> Signed-off-by: Maxim Zhukov <[email protected]>
> ---
> scripts/dtc/fdtput.c | 10 +++++++---

Again, your patch is against the kernel copy of dtc. It needs to be
against upstream dtc and then I can update the kernel copy once this
lands.

Rob

2016-04-13 04:16:17

by David Gibson

[permalink] [raw]
Subject: Re: [PATCH V2 2/2] scripts: dtc: fix memory leak after realloc

On Tue, Apr 12, 2016 at 04:11:17PM -0500, Rob Herring wrote:
> On Tue, Apr 12, 2016 at 3:55 PM, Maxim Zhukov
> <[email protected]> wrote:
> > This commit fixed memory leak after errors realloc.
> >
> > Signed-off-by: Maxim Zhukov <[email protected]>
> > ---
> > scripts/dtc/fdtput.c | 10 +++++++---
>
> Again, your patch is against the kernel copy of dtc. It needs to be
> against upstream dtc and then I can update the kernel copy once this
> lands.

Right. TBH, I'm not particularly concerned about the leak anyway.
The memory will be freed when fdtput exits moments later, so it's
really not a big deal.

--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson


Attachments:
(No filename) (820.00 B)
signature.asc (819.00 B)
Download all attachments

2016-04-20 07:26:16

by Michal Marek

[permalink] [raw]
Subject: Re: [PATCH V2 1/2] scripts: genksyms: fix resource leak

On Tue, Apr 12, 2016 at 11:54:59PM +0300, Maxim Zhukov wrote:
> This commit fixed resource leak at func main
>
> Signed-off-by: Maxim Zhukov <[email protected]>

Applied to kbuild.git#kbuild. Although the leak is harmless.

Michal