jdk/src/solaris/native/com/sun/security/auth/module/Unix.c
changeset 16488 816b9df68a9f
parent 14342 8435a30053c1
child 22648 7bcdb55f70ff
equal deleted inserted replaced
16487:f3fecb3d79af 16488:816b9df68a9f
    42 
    42 
    43     int i;
    43     int i;
    44     char pwd_buf[1024];
    44     char pwd_buf[1024];
    45     struct passwd *pwd;
    45     struct passwd *pwd;
    46     struct passwd resbuf;
    46     struct passwd resbuf;
    47     jsize numSuppGroups = getgroups(0, NULL);
       
    48     gid_t *groups = (gid_t *)calloc(numSuppGroups, sizeof(gid_t));
       
    49 
       
    50     jfieldID userNameID;
    47     jfieldID userNameID;
    51     jfieldID userID;
    48     jfieldID userID;
    52     jfieldID groupID;
    49     jfieldID groupID;
    53     jfieldID supplementaryGroupID;
    50     jfieldID supplementaryGroupID;
    54 
    51 
    55     jstring jstr;
    52     jstring jstr;
    56     jlongArray jgroups;
    53     jlongArray jgroups;
    57     jlong *jgroupsAsArray;
    54     jlong *jgroupsAsArray;
    58     jclass cls = (*env)->GetObjectClass(env, obj);
    55     jsize numSuppGroups;
       
    56     gid_t *groups;
       
    57     jclass cls;
       
    58 
       
    59     numSuppGroups = getgroups(0, NULL);
       
    60     groups = (gid_t *)calloc(numSuppGroups, sizeof(gid_t));
       
    61     if (groups == NULL) {
       
    62         jclass cls = (*env)->FindClass(env,"java/lang/OutOfMemoryError");
       
    63         if(cls != 0)
       
    64             (*env)->ThrowNew(env, cls, NULL);
       
    65         return;
       
    66     }
       
    67 
       
    68     cls = (*env)->GetObjectClass(env, obj);
    59 
    69 
    60     memset(pwd_buf, 0, sizeof(pwd_buf));
    70     memset(pwd_buf, 0, sizeof(pwd_buf));
    61 
    71 
    62     if (getpwuid_r(getuid(), &resbuf, pwd_buf, sizeof(pwd_buf), &pwd) == 0 &&
    72     if (getpwuid_r(getuid(), &resbuf, pwd_buf, sizeof(pwd_buf), &pwd) == 0 &&
    63         pwd != NULL &&
    73         pwd != NULL &&