From dfb366da5a1b4af2f016ef6ce94d9cee02e74522 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Mon, 27 Jan 2003 17:00:17 +0000 Subject: [PATCH] * passwd.cc (pwdgrp::parse_passwd): Be more unforgiving about non-numeric fields. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/passwd.cc | 9 ++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 96574200c..a7464a14c 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2003-01-27 Christopher Faylor + + * passwd.cc (pwdgrp::parse_passwd): Be more unforgiving about + non-numeric fields. + 2003-01-26 Christopher Faylor * uinfo.cc (pwdgrp::next_num): Remove check for NULL since it is no diff --git a/winsup/cygwin/passwd.cc b/winsup/cygwin/passwd.cc index c257bd640..ee1239227 100644 --- a/winsup/cygwin/passwd.cc +++ b/winsup/cygwin/passwd.cc @@ -40,11 +40,10 @@ pwdgrp::parse_passwd () # define res (*passwd_buf)[curr_lines] res.pw_name = next_str (':'); res.pw_passwd = next_str (':'); - char *p = raw_ptr (); - (void) next_num (res.pw_uid); - if (p == raw_ptr ()) - return false; /* parsing did not advance. line is garbage */ - (void) next_num (res.pw_gid); + if (!next_num (res.pw_uid)) + return false; + if (!next_num (res.pw_gid)) + return false; res.pw_comment = NULL; res.pw_gecos = next_str (':'); res.pw_dir = next_str (':');