mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-15 21:05:11 +00:00
7043788: (fs) PosixFileAttributes.owner() or group() throws NPE if owner/group not in passwd/group database
Reviewed-by: chegar
This commit is contained in:
parent
54cdd2715c
commit
fa107ec80e
@ -892,8 +892,9 @@ Java_sun_nio_fs_UnixNativeDispatcher_getpwuid(JNIEnv* env, jclass this, jint uid
|
||||
|
||||
if (res != 0 || p == NULL || p->pw_name == NULL || *(p->pw_name) == '\0') {
|
||||
/* not found or error */
|
||||
if (errno != 0 && errno != ENOENT)
|
||||
throwUnixException(env, errno);
|
||||
if (errno == 0)
|
||||
errno = ENOENT;
|
||||
throwUnixException(env, errno);
|
||||
} else {
|
||||
jsize len = strlen(p->pw_name);
|
||||
result = (*env)->NewByteArray(env, len);
|
||||
@ -941,14 +942,14 @@ Java_sun_nio_fs_UnixNativeDispatcher_getgrgid(JNIEnv* env, jclass this, jint gid
|
||||
retry = 0;
|
||||
if (res != 0 || g == NULL || g->gr_name == NULL || *(g->gr_name) == '\0') {
|
||||
/* not found or error */
|
||||
if (errno != 0 && errno != ENOENT) {
|
||||
if (errno == ERANGE) {
|
||||
/* insufficient buffer size so need larger buffer */
|
||||
buflen += ENT_BUF_SIZE;
|
||||
retry = 1;
|
||||
} else {
|
||||
throwUnixException(env, errno);
|
||||
}
|
||||
if (errno == ERANGE) {
|
||||
/* insufficient buffer size so need larger buffer */
|
||||
buflen += ENT_BUF_SIZE;
|
||||
retry = 1;
|
||||
} else {
|
||||
if (errno == 0)
|
||||
errno = ENOENT;
|
||||
throwUnixException(env, errno);
|
||||
}
|
||||
} else {
|
||||
jsize len = strlen(g->gr_name);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user