[OpenJDK 2D-Dev] RFR: JDK-8260432: allocateSpaceForGP in freetypeScaler.c might leak memory
Matthias Baesken
mbaesken at openjdk.java.net
Wed Jan 27 12:04:42 UTC 2021
On Wed, 27 Jan 2021 11:41:48 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> The function AllocateSpaceForGP in freetypeScaler.c calls potentially 2 times malloc ; however the memory is not always freed correctly in case of errors.
>> See also the related sonar issue :
>> https://sonarcloud.io/project/issues?id=shipilev_jdk&languages=c&open=AXck8B_SBBG2CXpcngxr&resolved=false&severities=BLOCKER&types=BUG
>
> src/java.desktop/share/native/libfontmanager/freetypeScaler.c line 1290:
>
>> 1288:
>> 1289: /* failure if any of mallocs failed */
>> 1290: if (gpdata->pointTypes == NULL || gpdata->pointCoords == NULL)
>
> I think it would be cleaner to free the remaining allocations on the failing path:
>
> if (gpdata->pointTypes == NULL || gpdata->pointCoords == NULL) {
> if (gpdata->pointTypes != NULL) free(gpdata->pointTypes);
> if (gpdata->pointCoords != NULL) free(gpdata->pointCoords);
> return 0;
> } else {
> return 1;
> }
Then we would free as well for the realloc code path
} else {
/* do we have enough space? */
...
}
Is this okay?
-------------
PR: https://git.openjdk.java.net/jdk/pull/2250
More information about the 2d-dev
mailing list