[PATCH resend2] Skip the null pointer check before calling realloc
Daniel D. Daugherty
daniel.daugherty at oracle.com
Tue Dec 15 21:56:39 UTC 2015
Alex,
The following bug was filed to track this issue:
JDK-8145278 Memory leak in splitPathList
https://bugs.openjdk.java.net/browse/JDK-8145278
I added a comment to that bug report and it turns out
that Dmitry had a similar comment back in November...
The discussion need to move from the mailing list to
the bug report.
Dan
On 12/15/15 1:43 PM, Alex Henrie wrote:
> # HG changeset patch
> # User Alex Henrie <alexhenrie24 at gmail.com>
> # Date 1447827030 25200
> # Tue Nov 17 23:10:30 2015 -0700
> # Node ID 6dca8affef8a4566dfaa36faeb7a14fc4086843a
> # Parent dc90094c0d66b3df2944da215d93542507c31e60
> Skip the null pointer check before calling realloc.
>
> "If ptr is a null pointer, realloc() shall be equivalent to malloc() for
> the specified size."
> http://pubs.opengroup.org/onlinepubs/9699919799/functions/realloc.html
>
> Also, sizeof(char*) is more correct here than sizeof(char**), although
> in practice it doesn't make a difference.
>
> diff --git a/src/java.instrument/share/native/libinstrument/InvocationAdapter.c b/src/java.instrument/share/native/libinstrument/InvocationAdapter.c
> --- a/src/java.instrument/share/native/libinstrument/InvocationAdapter.c
> +++ b/src/java.instrument/share/native/libinstrument/InvocationAdapter.c
> @@ -519,21 +519,17 @@ splitPathList(const char* str, int* path
> int count = 0;
> char** segments = NULL;
> char* c = (char*) str;
> while (*c != '\0') {
> while (*c == ' ') c++; /* skip leading spaces */
> if (*c == '\0') {
> break;
> }
> - if (segments == NULL) {
> - segments = (char**)malloc( sizeof(char**) );
> - } else {
> - segments = (char**)realloc( segments, (count+1)*sizeof(char**) );
> - }
> + segments = (char**)realloc( segments, (count+1)*sizeof(char*) );
> jplis_assert(segments != (char**)NULL);
> segments[count++] = c;
> c = strchr(c, ' ');
> if (c == NULL) {
> break;
> }
> *c = '\0';
> c++;
More information about the serviceability-dev
mailing list