Mercurial > hg > octave-lyh > gnulib-hg
changeset 7909:23cd146c58fd
* lib/userspec.c (parse_with_separator): If a user or group string
starts with "+", skip the corresponding name-to-ID look-up, since
such a look-up must fail: user and group names may not include "+".
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Sat, 20 Jan 2007 08:46:44 +0000 |
parents | d41d48e822b4 |
children | 6fdc6bdf5e75 |
files | ChangeLog lib/userspec.c |
diffstat | 2 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-01-20 Jim Meyering <jim@meyering.net> + + * lib/userspec.c (parse_with_separator): If a user or group string + starts with "+", skip the corresponding name-to-ID look-up, since + such a look-up must fail: user and group names may not include "+". + 2007-01-19 Paul Eggert <eggert@cs.ucla.edu> * lib/poll.c: Include sys/time.h and time.h unconditionally,
--- a/lib/userspec.c +++ b/lib/userspec.c @@ -1,5 +1,5 @@ /* userspec.c -- Parse a user and group string. - Copyright (C) 1989-1992, 1997-1998, 2000, 2002-2006 Free Software + Copyright (C) 1989-1992, 1997-1998, 2000, 2002-2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -156,7 +156,8 @@ if (u != NULL) { - pwd = getpwnam (u); + /* If it starts with "+", skip the look-up. */ + pwd = (*u == '+' ? NULL : getpwnam (u)); if (pwd == NULL) { bool use_login_group = (separator != NULL && g == NULL); @@ -196,7 +197,8 @@ if (g != NULL && error_msg == NULL) { /* Explicit group. */ - grp = getgrnam (g); + /* If it starts with "+", skip the look-up. */ + grp = (*g == '+' ? NULL : getgrnam (g)); if (grp == NULL) { unsigned long int tmp;