-/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
do
{
+ buffer[buflen] = '\xff';
p = fgets (buffer, buflen, stream);
- if (p == NULL)
+ if (p == NULL && feof (stream))
{
*result = NULL;
return errno;
}
+ if (p == NULL || buffer[buflen] != '\xff')
+ {
+ *result = NULL;
+ return errno = ERANGE;
+ }
/* Skip leading blanks. */
while (isspace (*p))
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
do
{
fgetpos (ent->stream, &pos);
+ buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
- if (p == NULL)
+ if (p == NULL && feof (ent->stream))
+ return NSS_STATUS_NOTFOUND;
+ if (p == NULL || buffer[buflen - 1] != '\xff')
{
- if (feof (ent->stream))
- return NSS_STATUS_NOTFOUND;
- else
- {
- fsetpos (ent->stream, &pos);
- __set_errno (ERANGE);
- return NSS_STATUS_TRYAGAIN;
- }
+ fsetpos (ent->stream, &pos);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
}
/* Terminate the line for any case. */
do
{
fgetpos (ent->stream, &pos);
+ buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
- if (p == NULL)
+ if (p == NULL && feof (ent->stream))
+ return NSS_STATUS_NOTFOUND;
+ if (p == NULL || buffer[buflen - 1] != '\xff')
{
- if (feof (ent->stream))
- return NSS_STATUS_NOTFOUND;
- else
- {
- fsetpos (ent->stream, &pos);
- __set_errno (ERANGE);
- return NSS_STATUS_TRYAGAIN;
- }
+ fsetpos (ent->stream, &pos);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
}
/* Terminate the line for any case. */
do
{
fgetpos (ent->stream, &pos);
+ buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
- if (p == NULL)
+ if (p == NULL && feof (ent->stream))
+ return NSS_STATUS_NOTFOUND;
+ if (p == NULL || buffer[buflen - 1] != '\xff')
{
- if (feof (ent->stream))
- return NSS_STATUS_NOTFOUND;
- else
- {
- fsetpos (ent->stream, &pos);
- __set_errno (ERANGE);
- return NSS_STATUS_TRYAGAIN;
- }
+ fsetpos (ent->stream, &pos);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
}
/* Terminate the line for any case. */
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
do
{
fgetpos (ent->stream, &pos);
+ buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
- if (p == NULL)
+ if (p == NULL && feof (ent->stream))
+ return NSS_STATUS_NOTFOUND;
+ if (p == NULL || buffer[buflen - 1] != '\xff')
{
- if (feof (ent->stream))
- return NSS_STATUS_NOTFOUND;
- else
- {
- fsetpos (ent->stream, &pos);
- __set_errno (ERANGE);
- return NSS_STATUS_TRYAGAIN;
- }
+ fsetpos (ent->stream, &pos);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
}
/* Terminate the line for any case. */
do
{
fgetpos (ent->stream, &pos);
+ buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
- if (p == NULL)
+ if (p == NULL && feof (ent->stream))
+ return NSS_STATUS_NOTFOUND;
+ if (p == NULL || buffer[buflen - 1] != '\xff')
{
- if (feof (ent->stream))
- return NSS_STATUS_NOTFOUND;
- else
- {
- fsetpos (ent->stream, &pos);
- __set_errno (ERANGE);
- return NSS_STATUS_TRYAGAIN;
- }
+ fsetpos (ent->stream, &pos);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
}
/* Terminate the line for any case. */
do
{
fgetpos (ent->stream, &pos);
+ buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
- if (p == NULL)
+ if (p == NULL && feof (ent->stream))
+ return NSS_STATUS_NOTFOUND;
+ if (p == NULL || buffer[buflen - 1] != '\xff')
{
- if (feof (ent->stream))
- return NSS_STATUS_NOTFOUND;
- else
- {
- fsetpos (ent->stream, &pos);
- __set_errno (ERANGE);
- return NSS_STATUS_TRYAGAIN;
- }
+ fsetpos (ent->stream, &pos);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
}
/* Terminate the line for any case. */
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
do
{
fgetpos (ent->stream, &pos);
+ buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
- if (p == NULL)
+ if (p == NULL && feof (ent->stream))
return NSS_STATUS_NOTFOUND;
+ if (p == NULL || buffer[buflen - 1] != '\xff')
+ {
+ fsetpos (ent->stream, &pos);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
/* Terminate the line for any case. */
buffer[buflen - 1] = '\0';
do
{
fgetpos (ent->stream, &pos);
+ buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
- if (p == NULL)
+ if (p == NULL && feof (ent->stream))
return NSS_STATUS_NOTFOUND;
+ if (p == NULL || buffer[buflen - 1] != '\xff')
+ {
+ fsetpos (ent->stream, &pos);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
/* Terminate the line for any case. */
buffer[buflen - 1] = '\0';
/* Common code for file-based databases in nss_files module.
- Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
do
{
/* Terminate the line so that we can test for overflow. */
- data->linebuffer[linebuflen - 1] = '\0';
+ data->linebuffer[linebuflen - 1] = '\xff';
p = fgets (data->linebuffer, linebuflen, stream);
- if (p == NULL)
+ if (p == NULL && feof (stream))
{
/* End of file or read error. */
H_ERRNO_SET (HOST_NOT_FOUND);
return NSS_STATUS_NOTFOUND;
}
- else if (data->linebuffer[linebuflen - 1] != '\0')
+ else if (p == NULL || data->linebuffer[linebuflen - 1] != '\xff')
{
/* The line is too long. Give the user the opportunity to
enlarge the buffer. */
/* Mail alias file parser in nss_files module.
- Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
/* Read the first line. It must contain the alias name and
possibly some alias names. */
- first_unused[room_left - 1] = '\0';
+ first_unused[room_left - 1] = '\xff';
line = fgets (first_unused, room_left, stream);
- if (line == NULL)
+ if (line == NULL && feof (stream))
/* Nothing to read. */
break;
- else if (first_unused[room_left - 1] != '\0')
+ else if (line == NULL || first_unused[room_left - 1] != '\xff')
{
/* The line is too long for our buffer. */
no_more_room:
looking for. If it does not match we simply ignore all
lines until the next line containing the start of a new
alias is found. */
- ignore = match != NULL && strcmp (result->alias_name, match) != 0;
+ ignore = (match != NULL
+ && __strcasecmp (result->alias_name, match) != 0);
while (! ignore)
{
{
while (! feof (listfile))
{
- first_unused[room_left - 1] = '\0';
+ first_unused[room_left - 1] = '\xff';
line = fgets (first_unused, room_left, listfile);
- if (line == NULL)
+ if (line == NULL && feof (listfile))
break;
- if (first_unused[room_left - 1] != '\0')
+ if (line == NULL
+ || first_unused[room_left - 1] != '\xff')
{
free (old_line);
goto no_more_room;
/* The just read character is a white space and so
can be ignored. */
- first_unused[room_left - 1] = '\0';
+ first_unused[room_left - 1] = '\xff';
line = fgets (first_unused, room_left, stream);
- if (first_unused[room_left - 1] != '\0')
+ if (line == NULL && feof (stream))
+ break;
+ if (line == NULL || first_unused[room_left - 1] != '\xff')
goto no_more_room;
cp = strpbrk (line, "#\n");
if (cp != NULL)
-/* Copyright (C) 1991, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
do
{
+ buffer[buflen] = '\xff';
p = fgets (buffer, buflen, stream);
- if (p == NULL)
+ if (p == NULL && feof (stream))
{
*result = NULL;
return errno;
}
+ if (p == NULL || buffer[buflen] != '\xff')
+ {
+ *result = NULL;
+ return errno = ERANGE;
+ }
/* Skip leading blanks. */
while (isspace (*p))
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
do
{
+ buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, stream);
- if (p == NULL)
+ if (p == NULL && feof (stream))
{
*result = NULL;
return errno;
}
+ if (p == NULL || buffer[buflen] != '\xff')
+ {
+ *result = NULL;
+ return errno = ERANGE;
+ }
/* Skip leading blanks. */
while (isspace (*p))