lseek returns the new offset, not 0
authorChristopher Dykes <cdykes@fb.com>
Thu, 25 Aug 2016 21:52:59 +0000 (14:52 -0700)
committerFacebook Github Bot 9 <facebook-github-bot-9-bot@fb.com>
Thu, 25 Aug 2016 21:53:36 +0000 (14:53 -0700)
Summary:
With how this was written it would fail if the call to `lseek` failed, or if it succeeded, unless it was setting the length to 0, in which case it would succeed.
This makes it work right.

Reviewed By: yfeldblum

Differential Revision: D3773311

fbshipit-source-id: 3dc94502d0c4259f6f2766b4c0903c081d7c36ab

folly/portability/Unistd.cpp

index 27fc7c7723b4b58b65d2cac09668b62ba5dc5b79..bf598d237285df0a1177d2efe47b36ef918d6dfd 100755 (executable)
@@ -92,7 +92,7 @@ int fsync(int fd) {
 }
 
 int ftruncate(int fd, off_t len) {
-  if (_lseek(fd, len, SEEK_SET)) {
+  if (_lseek(fd, len, SEEK_SET) == -1) {
     return -1;
   }