提交 b589983a 编写于 作者: I igerasim

8207145: (fs) Native memory leak in WindowsNativeDispatcher.LookupPrivilegeValue0

Reviewed-by: alanb
上级 863596d8
/*
* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -102,9 +102,8 @@ class WindowsSecurity {
final boolean stopImpersontating = impersontating;
final boolean needToRevert = elevated;
return new Privilege() {
@Override
public void drop() {
return () -> {
try {
if (token != 0L) {
try {
if (stopImpersontating)
......@@ -118,6 +117,8 @@ class WindowsSecurity {
CloseHandle(token);
}
}
} finally {
LocalFree(pLuid);
}
};
}
......
/*
* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -1074,8 +1074,11 @@ Java_sun_nio_fs_WindowsNativeDispatcher_LookupPrivilegeValue0(JNIEnv* env,
if (pLuid == NULL) {
JNU_ThrowInternalError(env, "Unable to allocate LUID structure");
} else {
if (LookupPrivilegeValueW(NULL, lpName, pLuid) == 0)
if (LookupPrivilegeValueW(NULL, lpName, pLuid) == 0) {
LocalFree(pLuid);
throwWindowsException(env, GetLastError());
return (jlong)0;
}
}
return ptr_to_jlong(pLuid);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册