Index: winsup/cygwin/grp.cc =================================================================== RCS file: /home/duda_admin/cvs-mirror/src/winsup/cygwin/grp.cc,v retrieving revision 1.8 diff -c -2 -r1.8 grp.cc *** winsup/cygwin/grp.cc 2000/08/22 05:10:20 1.8 --- winsup/cygwin/grp.cc 2000/08/29 08:59:07 *************** *** 16,23 **** --- 16,25 ---- #include #include + #include #include "thread.h" #include "sync.h" #include "sigproc.h" #include "pinfo.h" + #include "cygerrno.h" /* Read /etc/group only once for better performance. This is done *************** *** 249,254 **** grouplist[cnt] = group_buf[i].gr_gid; ++cnt; ! if (gidsetsize && cnt >= gidsetsize) ! goto out; } else if (group_buf[i].gr_mem) --- 251,256 ---- grouplist[cnt] = group_buf[i].gr_gid; ++cnt; ! if (gidsetsize && cnt > gidsetsize) ! goto error; } else if (group_buf[i].gr_mem) *************** *** 259,267 **** grouplist[cnt] = group_buf[i].gr_gid; ++cnt; ! if (gidsetsize && cnt >= gidsetsize) ! goto out; } - out: return cnt; } --- 261,272 ---- grouplist[cnt] = group_buf[i].gr_gid; ++cnt; ! if (gidsetsize && cnt > gidsetsize) ! goto error; } return cnt; + + error: + set_errno ( EINVAL ); + return -1; }