diff options
author | Karel Zak | 2012-02-06 12:51:55 +0100 |
---|---|---|
committer | Karel Zak | 2012-02-06 12:51:55 +0100 |
commit | 34bb8eea903ccf708d509428a39bbe50cf87928d (patch) | |
tree | 4b2f9bc403ada7e8c9caeae07850a7e23a0d381a /login-utils/login.c | |
parent | vipw: use xalloc.h (diff) | |
download | kernel-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.c | 8 |
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); } /* |