Delete unused misc/getpw.c from libc.
@hexcoder- reported in https://github.com/davidgiven/ack/issues/57 that our getpw() has bugs. I don't fix these bugs, because Illumos and Linux manual pages say that getpw() is obsolete. The function can overflow its buffer, so it is never safe to use. Our libc did not build getpw().
This commit is contained in:
parent
0a2dfd650d
commit
54028e403e
|
@ -1,38 +0,0 @@
|
|||
/*
|
||||
* getpw - get a password from the password file
|
||||
*/
|
||||
/* $Id$ */
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
getpw(int uid, char buf[])
|
||||
{
|
||||
register FILE *pwf;
|
||||
register int ch, i;
|
||||
register char *bp;
|
||||
|
||||
pwf = fopen("/etc/passwd", "r");
|
||||
if (pwf == NULL) return(1);
|
||||
|
||||
for (;;) {
|
||||
bp = buf;
|
||||
while ((ch = getc(pwf)) != '\n') {
|
||||
if (ch == EOF) return 1;
|
||||
*bp++ = ch;
|
||||
}
|
||||
*bp++ = '\0';
|
||||
bp = buf;
|
||||
for (i = 2; i; i--) {
|
||||
while ((ch = *bp++) != ':') {
|
||||
if(ch = '\0') return 1;
|
||||
}
|
||||
}
|
||||
i = 0;
|
||||
while ((ch = *bp++) != ':') {
|
||||
if (ch < '0' || ch > '9') return 1;
|
||||
i = i * 10 + (ch - '0');
|
||||
}
|
||||
if (i == uid) return(0);
|
||||
}
|
||||
/*NOTREACHED*/
|
||||
}
|
Loading…
Reference in a new issue