From: Karel Zak Date: Wed, 27 Mar 2013 13:13:00 +0000 (+0100) Subject: login: check returns [coverity scan] X-Git-Tag: v2.23-rc2~108 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7488d4c06804ba258569f6f36aa7518f917fe291;p=thirdparty%2Futil-linux.git login: check returns [coverity scan] Signed-off-by: Karel Zak --- diff --git a/login-utils/login.c b/login-utils/login.c index 425053406a..0d2c165092 100644 --- a/login-utils/login.c +++ b/login-utils/login.c @@ -506,10 +506,8 @@ static void log_lastlog(struct login_context *cxt) if (fd < 0) return; - if (lseek(fd, (off_t) cxt->pwd->pw_uid * sizeof(ll), SEEK_SET) == -1) { - close(fd); - return; - } + if (lseek(fd, (off_t) cxt->pwd->pw_uid * sizeof(ll), SEEK_SET) == -1) + goto done; /* * Print last log message @@ -527,7 +525,8 @@ static void log_lastlog(struct login_context *cxt) printf(_("on %.*s\n"), (int)sizeof(ll.ll_line), ll.ll_line); } - lseek(fd, (off_t) cxt->pwd->pw_uid * sizeof(ll), SEEK_SET); + if (lseek(fd, (off_t) cxt->pwd->pw_uid * sizeof(ll), SEEK_SET) == -1) + goto done; } memset((char *)&ll, 0, sizeof(ll)); @@ -542,7 +541,7 @@ static void log_lastlog(struct login_context *cxt) if (write_all(fd, (char *)&ll, sizeof(ll))) warn(_("write lastlog failed")); - +done: close(fd); }