diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index d38ec43d7..6978f95e7 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,8 @@ +2008-08-18 Corinna Vinschen + + * mkgroup.c (enum_local_groups): Return failure if looking for a single + group succeeded. Add comment. + 2008-08-18 Corinna Vinschen * mkgroup.c (main): Keep correctly track of optional arguments. diff --git a/winsup/utils/mkgroup.c b/winsup/utils/mkgroup.c index e2d73aa4d..3034e457a 100644 --- a/winsup/utils/mkgroup.c +++ b/winsup/utils/mkgroup.c @@ -454,7 +454,10 @@ skip_group: } while (rc == ERROR_MORE_DATA); - return 0; + /* Return -1 if the single group we're looking for has been found here to + avoid calling enum_groups for the same group, thus avoiding a spurious + error message "group name could not be found" in enum_groups. */ + return disp_groupname && entriesread ? -1 : 0; } static void