Unbreak pututxline() on 32-bit architectures.

I forgot to cast the size_t's back to off_t before negating them,
causing all sorts of artifacts where the log files would grow to 2^32 -
197 bytes.

Reported by:	ume
This commit is contained in:
Ed Schouten 2010-01-14 15:20:09 +00:00
parent ca6c375670
commit 6386f4da2a

View File

@ -87,7 +87,7 @@ utx_active_add(const struct futx *fu)
case DEAD_PROCESS:
/* Overwrite when ut_id matches. */
if (memcmp(fu->fu_id, fe.fu_id, sizeof fe.fu_id) == 0) {
fseeko(fp, -sizeof fe, SEEK_CUR);
fseeko(fp, -(off_t)sizeof fe, SEEK_CUR);
goto exact;
}
if (fe.fu_type != DEAD_PROCESS)
@ -96,7 +96,7 @@ utx_active_add(const struct futx *fu)
default:
/* Allow us to overwrite unused records. */
if (partial == -1)
partial = ftello(fp) - sizeof fe;
partial = ftello(fp) - (off_t)sizeof fe;
break;
}
}
@ -140,7 +140,7 @@ utx_active_remove(struct futx *fu)
fu->fu_tv = fe.fu_tv;
/* Terminate session. */
fseeko(fp, -sizeof fe, SEEK_CUR);
fseeko(fp, -(off_t)sizeof fe, SEEK_CUR);
fwrite(fu, sizeof *fu, 1, fp);
fclose(fp);
return (0);
@ -181,7 +181,7 @@ utx_lastlogin_add(const struct futx *fu)
goto done;
/* Found a previous lastlogin entry for this user. */
fseeko(fp, -sizeof fe, SEEK_CUR);
fseeko(fp, -(off_t)sizeof fe, SEEK_CUR);
break;
}
fwrite(fu, sizeof *fu, 1, fp);