2016-04-12 15:19:34

by Maxim Zhukov

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

[PATCH 1/2] scripts: genksyms: fix resource leak
[PATCH 2/2] scripts: dtc: fix memory leak after realloc


2016-04-12 15:19:27

by Maxim Zhukov

[permalink] [raw]
Subject: [PATCH 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 15:20:00

by Maxim Zhukov

[permalink] [raw]
Subject: [PATCH 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 15:40:02

by Rob Herring

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

On Tue, Apr 12, 2016 at 10:18 AM, Maxim Zhukov
<[email protected]> wrote:
> [PATCH 1/2] scripts: genksyms: fix resource leak
> [PATCH 2/2] scripts: dtc: fix memory leak after realloc

scripts/dtc is just an import of upstream dtc[1]. So your patches need
to be against that and sent to [email protected].
Once they are in, I can do a new import.

Rob

[1] git://git.kernel.org/pub/scm/utils/dtc/dtc.git

2016-04-12 15:40:47

by Rob Herring

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

On Tue, Apr 12, 2016 at 10:39 AM, Rob Herring <[email protected]> wrote:
> On Tue, Apr 12, 2016 at 10:18 AM, Maxim Zhukov
> <[email protected]> wrote:
>> [PATCH 1/2] scripts: genksyms: fix resource leak
>> [PATCH 2/2] scripts: dtc: fix memory leak after realloc
>
> scripts/dtc is just an import of upstream dtc[1]. So your patches need
> to be against that and sent to [email protected].
> Once they are in, I can do a new import.

Sorry, that's only for patch 2.

Rob

>
> Rob
>
> [1] git://git.kernel.org/pub/scm/utils/dtc/dtc.git