summaryrefslogtreecommitdiffstats
path: root/login-utils/login.c
diff options
context:
space:
mode:
authorKarel Zak2012-02-06 12:51:55 +0100
committerKarel Zak2012-02-06 12:51:55 +0100
commit34bb8eea903ccf708d509428a39bbe50cf87928d (patch)
tree4b2f9bc403ada7e8c9caeae07850a7e23a0d381a /login-utils/login.c
parentvipw: use xalloc.h (diff)
downloadkernel-qcow2-util-linux-34bb8eea903ccf708d509428a39bbe50cf87928d.tar.gz
kernel-qcow2-util-linux-34bb8eea903ccf708d509428a39bbe50cf87928d.tar.xz
kernel-qcow2-util-linux-34bb8eea903ccf708d509428a39bbe50cf87928d.zip
login: fix leak, improve strtok usage
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'login-utils/login.c')
-rw-r--r--login-utils/login.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/login-utils/login.c b/login-utils/login.c
index ff56cac4f..80d287d97 100644
--- a/login-utils/login.c
+++ b/login-utils/login.c
@@ -217,7 +217,7 @@ static const char *get_thishost(struct login_context *cxt, const char **domain)
*/
static void motd(void)
{
- char *motdlist, *motdfile, *cp;
+ char *motdlist, *motdfile;
const char *mb;
mb = getlogindefs_str("MOTD_FILE", _PATH_MOTDFILE);
@@ -226,7 +226,9 @@ static void motd(void)
motdlist = xstrdup(mb);
- for (cp = motdlist; (motdfile = strtok(cp, ":")); cp = NULL) {
+ for (motdfile = strtok(motdlist, ":"); motdfile;
+ motdfile = strtok(NULL, ":")) {
+
struct stat st;
int fd;
@@ -239,6 +241,8 @@ static void motd(void)
sendfile(fileno(stdout), fd, NULL, st.st_size);
close(fd);
}
+
+ free(motdlist);
}
/*