projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
(enum backuptype): Rename none -> no_backups,
[gnulib.git]
/
lib
/
getusershell.c
diff --git
a/lib/getusershell.c
b/lib/getusershell.c
index
c026ec0
..
9b60f18
100644
(file)
--- a/
lib/getusershell.c
+++ b/
lib/getusershell.c
@@
-145,29
+145,17
@@
readname (char **name, size_t *size, FILE *stream)
int c;
size_t name_index = 0;
int c;
size_t name_index = 0;
- if (*name == NULL)
- {
- /* The initial size must be a power of two, so that the overflow
- check works. */
- *size = 16;
-
- *name = xmalloc (*size);
- }
-
/* Skip blank space. */
while ((c = getc (stream)) != EOF && ISSPACE (c))
/* Do nothing. */ ;
/* Skip blank space. */
while ((c = getc (stream)) != EOF && ISSPACE (c))
/* Do nothing. */ ;
-
while (c != EOF && !ISSPACE (c)
)
+
for (;;
)
{
{
+ if (*size <= name_index)
+ *name = x2nrealloc (*name, size, sizeof **name);
+ if (c == EOF || ISSPACE (c))
+ break;
(*name)[name_index++] = c;
(*name)[name_index++] = c;
- if (*size < name_index)
- {
- *size *= 2;
- if (! *size)
- xalloc_die ();
- *name = xrealloc (*name, *size);
- }
c = getc (stream);
}
(*name)[name_index] = '\0';
c = getc (stream);
}
(*name)[name_index] = '\0';