]> andersk Git - openssh.git/commitdiff
- (djm) Lastlog was not getting closed after writing login entry
authordjm <djm>
Fri, 18 Aug 2000 04:08:38 +0000 (04:08 +0000)
committerdjm <djm>
Fri, 18 Aug 2000 04:08:38 +0000 (04:08 +0000)
ChangeLog
loginrec.c

index 2f5cee9a2ba3de0bad5e325c97478b54530bfc08..106c1459a33c47ccaf842842ded98450ec3486c8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -38,6 +38,7 @@
    - markus@cvs.openbsd.org  2000/08/17 14:06:34
      [session.c sshd.8 sshd.c]
       sshd -u len, similar to telnetd
+ - (djm) Lastlog was not getting closed after writing login entry
 
 20000816
  - (djm) Replacement for inet_ntoa for Irix (which breaks on gcc)
index c233a028cdfcd5b4b45eec0c4cdf88873d8ce45f..2f5fc769626218aa4cd34c15f5908abbd8e809cb 100644 (file)
@@ -1403,17 +1403,19 @@ lastlog_perform_login(struct logininfo *li)
        /* create our struct lastlog */
        lastlog_construct(li, &last);
 
+       if (!lastlog_openseek(li, &fd, O_RDWR|O_CREAT))
+               return(0);
+               
        /* write the entry */
-       if (lastlog_openseek(li, &fd, O_RDWR|O_CREAT)) {
-               if (atomicio(write, fd, &last, sizeof(last)) != sizeof(last)) {
-                       log("lastlog_write_filemode: Error writing to %s: %s",
-                           LASTLOG_FILE, strerror(errno));
-                       return 0;
-               }
-               return 1;
-       } else {
+       if (atomicio(write, fd, &last, sizeof(last)) != sizeof(last)) {
+               close(fd);
+               log("lastlog_write_filemode: Error writing to %s: %s",
+                   LASTLOG_FILE, strerror(errno));
                return 0;
        }
+
+       close(fd);
+       return 1;
 }
 
 int
This page took 0.534822 seconds and 5 git commands to generate.