From dcc60294ad4fe349003d6aeea774d8652744358a Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 28 Jul 2020 11:30:47 -0400 Subject: [PATCH] Use _lseeki64() on windows. Fixes bug 31036; bugfix on 0.2.1.8-alpha when we moved the logging system to use posix fds. --- changes/bug31036 | 3 +++ src/lib/fdio/fdio.c | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 changes/bug31036 diff --git a/changes/bug31036 b/changes/bug31036 new file mode 100644 index 0000000000..d9921dba43 --- /dev/null +++ b/changes/bug31036 @@ -0,0 +1,3 @@ + o Minor bugfixes (windows): + - Fix a bug that prevented Tor from starting if its log file + grew above 2GB. Fixes bug 31036; bugfix on 0.2.1.8-alpha. diff --git a/src/lib/fdio/fdio.c b/src/lib/fdio/fdio.c index 6c87af791d..d723d04d2a 100644 --- a/src/lib/fdio/fdio.c +++ b/src/lib/fdio/fdio.c @@ -43,7 +43,7 @@ off_t tor_fd_getpos(int fd) { #ifdef _WIN32 - return (off_t) _lseek(fd, 0, SEEK_CUR); + return (off_t) _lseeki64(fd, 0, SEEK_CUR); #else return (off_t) lseek(fd, 0, SEEK_CUR); #endif @@ -56,7 +56,7 @@ int tor_fd_seekend(int fd) { #ifdef _WIN32 - return _lseek(fd, 0, SEEK_END) < 0 ? -1 : 0; + return _lseeki64(fd, 0, SEEK_END) < 0 ? -1 : 0; #else off_t rc = lseek(fd, 0, SEEK_END) < 0 ? -1 : 0; #ifdef ESPIPE @@ -75,7 +75,7 @@ int tor_fd_setpos(int fd, off_t pos) { #ifdef _WIN32 - return _lseek(fd, pos, SEEK_SET) < 0 ? -1 : 0; + return _lseeki64(fd, pos, SEEK_SET) < 0 ? -1 : 0; #else return lseek(fd, pos, SEEK_SET) < 0 ? -1 : 0; #endif