projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
__P-protect dcls.
[gnulib.git]
/
lib
/
getusershell.c
diff --git
a/lib/getusershell.c
b/lib/getusershell.c
index
6e2e0c1
..
d3158d3
100644
(file)
--- a/
lib/getusershell.c
+++ b/
lib/getusershell.c
@@
-17,6
+17,10
@@
/* Written by David MacKenzie <djm@gnu.ai.mit.edu> */
/* Written by David MacKenzie <djm@gnu.ai.mit.edu> */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
#ifndef SHELLS_FILE
/* File containing a list of nonrestricted shells, one per line. */
#define SHELLS_FILE "/etc/shells"
#ifndef SHELLS_FILE
/* File containing a list of nonrestricted shells, one per line. */
#define SHELLS_FILE "/etc/shells"
@@
-32,10
+36,12
@@
char *malloc ();
char *realloc ();
#endif
char *realloc ();
#endif
+char *xstrdup ();
+
static int readname ();
/* List of shells to use if the shells file is missing. */
static int readname ();
/* List of shells to use if the shells file is missing. */
-static char
*
default_shells[] =
+static char
const* const
default_shells[] =
{
"/bin/sh", "/bin/csh", "/usr/bin/sh", "/usr/bin/csh", NULL
};
{
"/bin/sh", "/bin/csh", "/usr/bin/sh", "/usr/bin/csh", NULL
};
@@
-54,6
+60,8
@@
static char *line = NULL;
static int line_size = 0;
\f
/* Return an entry from the shells file, ignoring comment lines.
static int line_size = 0;
\f
/* Return an entry from the shells file, ignoring comment lines.
+ If the file doesn't exist, use the list in DEFAULT_SHELLS (above).
+ In any case, the returned string is in memory allocated through malloc.
Return NULL if there are no more entries. */
char *
Return NULL if there are no more entries. */
char *
@@
-63,7
+71,7
@@
getusershell ()
{
if (default_shells[default_index])
/* Not at the end of the list yet. */
{
if (default_shells[default_index])
/* Not at the end of the list yet. */
- return
default_shells[default_index++]
;
+ return
xstrdup (default_shells[default_index++])
;
return NULL;
}
return NULL;
}
@@
-74,7
+82,7
@@
getusershell ()
{
/* No shells file. Use the default list. */
default_index = 1;
{
/* No shells file. Use the default list. */
default_index = 1;
- return
default_shells[0]
;
+ return
xstrdup (default_shells[0])
;
}
}
}
}