提交 36917beb 编写于 作者: D dxu

8025712: (props) Possible memory leak in java_props_md.c / ParseLocale

Reviewed-by: naoto, chegar
上级 7a902edb
/* /*
* Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -158,6 +158,9 @@ static int ParseLocale(JNIEnv* env, int cat, char ** std_language, char ** std_s ...@@ -158,6 +158,9 @@ static int ParseLocale(JNIEnv* env, int cat, char ** std_language, char ** std_s
temp = malloc(strlen(lc) + 1); temp = malloc(strlen(lc) + 1);
if (temp == NULL) { if (temp == NULL) {
#ifdef MACOSX
free(lc); // malloced memory
#endif
JNU_ThrowOutOfMemoryError(env, NULL); JNU_ThrowOutOfMemoryError(env, NULL);
return 0; return 0;
} }
...@@ -172,7 +175,6 @@ static int ParseLocale(JNIEnv* env, int cat, char ** std_language, char ** std_s ...@@ -172,7 +175,6 @@ static int ParseLocale(JNIEnv* env, int cat, char ** std_language, char ** std_s
* the encoding - without it, we wouldn't get ISO-8859-15. * the encoding - without it, we wouldn't get ISO-8859-15.
* Therefore, this code section is Solaris-specific. * Therefore, this code section is Solaris-specific.
*/ */
lc = strdup(lc); /* keep a copy, setlocale trashes original. */
strcpy(temp, lc); strcpy(temp, lc);
p = strstr(temp, "@euro"); p = strstr(temp, "@euro");
if (p != NULL) { if (p != NULL) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册