提交 0d38f92e 编写于 作者: A alanb

7043788: (fs) PosixFileAttributes.owner() or group() throws NPE if owner/group...

7043788: (fs) PosixFileAttributes.owner() or group() throws NPE if owner/group not in passwd/group database
Reviewed-by: chegar
上级 08b33c19
...@@ -892,8 +892,9 @@ Java_sun_nio_fs_UnixNativeDispatcher_getpwuid(JNIEnv* env, jclass this, jint uid ...@@ -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') { 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) if (errno == 0)
throwUnixException(env, errno); errno = ENOENT;
throwUnixException(env, errno);
} else { } else {
jsize len = strlen(p->pw_name); jsize len = strlen(p->pw_name);
result = (*env)->NewByteArray(env, len); result = (*env)->NewByteArray(env, len);
...@@ -941,14 +942,14 @@ Java_sun_nio_fs_UnixNativeDispatcher_getgrgid(JNIEnv* env, jclass this, jint gid ...@@ -941,14 +942,14 @@ Java_sun_nio_fs_UnixNativeDispatcher_getgrgid(JNIEnv* env, jclass this, jint gid
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) { 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; retry = 1;
retry = 1; } else {
} else { if (errno == 0)
throwUnixException(env, errno); errno = ENOENT;
} throwUnixException(env, errno);
} }
} else { } else {
jsize len = strlen(g->gr_name); jsize len = strlen(g->gr_name);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册