--- embedaddon/sudo/src/utmp.c 2012/05/29 12:26:49 1.1.1.2 +++ embedaddon/sudo/src/utmp.c 2012/10/09 09:29:52 1.1.1.3 @@ -53,6 +53,7 @@ # include #endif #include +#include #include "sudo.h" #include "sudo_exec.h" @@ -327,7 +328,11 @@ utmp_login(const char *from_line, const char *to_line, } } utmp_fill(to_line, user, ut_old, &utbuf); +#ifdef HAVE_FSEEKO + if (fseeko(fp, slot * (off_t)sizeof(utbuf), SEEK_SET) == 0) { +#else if (fseek(fp, slot * (long)sizeof(utbuf), SEEK_SET) == 0) { +#endif if (fwrite(&utbuf, sizeof(utbuf), 1, fp) == 1) rval = true; } @@ -360,7 +365,11 @@ utmp_logout(const char *line, int status) # endif utmp_settime(&utbuf); /* Back up and overwrite record. */ +#ifdef HAVE_FSEEKO + if (fseeko(fp, (off_t)0 - (off_t)sizeof(utbuf), SEEK_CUR) == 0) { +#else if (fseek(fp, 0L - (long)sizeof(utbuf), SEEK_CUR) == 0) { +#endif if (fwrite(&utbuf, sizeof(utbuf), 1, fp) == 1) rval = true; }