mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8241568: (fs) UserPrincipalLookupService.lookupXXX failure with IOE "Operation not permitted"
Reviewed-by: alanb
This commit is contained in:
parent
de7ea8db92
commit
2bc8691156
1 changed files with 8 additions and 3 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2008, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2008, 2020, 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
|
||||||
|
@ -1244,8 +1244,11 @@ Java_sun_nio_fs_UnixNativeDispatcher_getpwnam0(JNIEnv* env, jclass this,
|
||||||
|
|
||||||
if (res != 0 || p == NULL || p->pw_name == NULL || *(p->pw_name) == '\0') {
|
if (res != 0 || p == NULL || p->pw_name == NULL || *(p->pw_name) == '\0') {
|
||||||
/* not found or error */
|
/* not found or error */
|
||||||
if (errno != 0 && errno != ENOENT && errno != ESRCH)
|
if (errno != 0 && errno != ENOENT && errno != ESRCH &&
|
||||||
|
errno != EBADF && errno != EPERM)
|
||||||
|
{
|
||||||
throwUnixException(env, errno);
|
throwUnixException(env, errno);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
uid = p->pw_uid;
|
uid = p->pw_uid;
|
||||||
}
|
}
|
||||||
|
@ -1286,7 +1289,9 @@ Java_sun_nio_fs_UnixNativeDispatcher_getgrnam0(JNIEnv* env, jclass this,
|
||||||
retry = 0;
|
retry = 0;
|
||||||
if (res != 0 || g == NULL || g->gr_name == NULL || *(g->gr_name) == '\0') {
|
if (res != 0 || g == NULL || g->gr_name == NULL || *(g->gr_name) == '\0') {
|
||||||
/* not found or error */
|
/* not found or error */
|
||||||
if (errno != 0 && errno != ENOENT && errno != ESRCH) {
|
if (errno != 0 && errno != ENOENT && errno != ESRCH &&
|
||||||
|
errno != EBADF && errno != EPERM)
|
||||||
|
{
|
||||||
if (errno == ERANGE) {
|
if (errno == ERANGE) {
|
||||||
/* insufficient buffer size so need larger buffer */
|
/* insufficient buffer size so need larger buffer */
|
||||||
buflen += ENT_BUF_SIZE;
|
buflen += ENT_BUF_SIZE;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue