Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
5be5839a
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5be5839a
编写于
7月 30, 2018
作者:
I
igerasim
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8207750: Native handle leak in java.io.WinNTFileSystem.list()
Reviewed-by: bpb
上级
b589983a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
6 deletion
+15
-6
src/windows/native/java/io/WinNTFileSystem_md.c
src/windows/native/java/io/WinNTFileSystem_md.c
+15
-6
未找到文件。
src/windows/native/java/io/WinNTFileSystem_md.c
浏览文件 @
5be5839a
...
...
@@ -626,6 +626,7 @@ Java_java_io_WinNTFileSystem_list(JNIEnv *env, jobject this, jobject file)
jstring
name
;
jclass
str_class
;
WCHAR
*
pathbuf
;
DWORD
err
;
str_class
=
JNU_ClassString
(
env
);
CHECK_NULL_RETURN
(
str_class
,
NULL
);
...
...
@@ -687,8 +688,10 @@ Java_java_io_WinNTFileSystem_list(JNIEnv *env, jobject this, jobject file)
len
=
0
;
maxlen
=
16
;
rv
=
(
*
env
)
->
NewObjectArray
(
env
,
maxlen
,
str_class
,
NULL
);
if
(
rv
==
NULL
)
// Couldn't allocate an array
if
(
rv
==
NULL
)
{
// Couldn't allocate an array
FindClose
(
handle
);
return
NULL
;
}
/* Scan the directory */
do
{
if
(
!
wcscmp
(
find_data
.
cFileName
,
L"."
)
...
...
@@ -696,13 +699,17 @@ Java_java_io_WinNTFileSystem_list(JNIEnv *env, jobject this, jobject file)
continue
;
name
=
(
*
env
)
->
NewString
(
env
,
find_data
.
cFileName
,
(
jsize
)
wcslen
(
find_data
.
cFileName
));
if
(
name
==
NULL
)
return
NULL
;
// error;
if
(
name
==
NULL
)
{
FindClose
(
handle
);
return
NULL
;
// error
}
if
(
len
==
maxlen
)
{
old
=
rv
;
rv
=
(
*
env
)
->
NewObjectArray
(
env
,
maxlen
<<=
1
,
str_class
,
NULL
);
if
(
rv
==
NULL
||
JNU_CopyObjectArray
(
env
,
rv
,
old
,
len
)
<
0
)
if
(
rv
==
NULL
||
JNU_CopyObjectArray
(
env
,
rv
,
old
,
len
)
<
0
)
{
FindClose
(
handle
);
return
NULL
;
// error
}
(
*
env
)
->
DeleteLocalRef
(
env
,
old
);
}
(
*
env
)
->
SetObjectArrayElement
(
env
,
rv
,
len
++
,
name
);
...
...
@@ -710,9 +717,11 @@ Java_java_io_WinNTFileSystem_list(JNIEnv *env, jobject this, jobject file)
}
while
(
FindNextFileW
(
handle
,
&
find_data
));
if
(
GetLastError
()
!=
ERROR_NO_MORE_FILES
)
return
NULL
;
// error
err
=
GetLastError
();
FindClose
(
handle
);
if
(
err
!=
ERROR_NO_MORE_FILES
)
{
return
NULL
;
// error
}
/* Copy the final results into an appropriately-sized array */
old
=
rv
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录