From 488f3c2dad93af023e8db2394d9b2af6439048f0 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Fri, 17 Sep 2004 17:47:12 -0400 Subject: [PATCH] On non-linux systems, use lseek64() if it is present in ext2fs_llseek() and blkid_llseek(). (Addresses Debian bug #269044) --- lib/blkid/ChangeLog | 5 +++++ lib/blkid/llseek.c | 4 ++++ lib/ext2fs/ChangeLog | 5 +++++ lib/ext2fs/llseek.c | 4 ++++ 4 files changed, 18 insertions(+) diff --git a/lib/blkid/ChangeLog b/lib/blkid/ChangeLog index 8fe0462..63ca354 100644 --- a/lib/blkid/ChangeLog +++ b/lib/blkid/ChangeLog @@ -1,3 +1,8 @@ +2004-09-17 Theodore Ts'o + + * llseek.c (blkid_llseek): On non-linux systems, use lseek64() if + it is present. (Addresses Debian bug #269044) + 2004-05-12 Theodore Ts'o * read.c (blkid_read_cache): Add missing fclose() which was diff --git a/lib/blkid/llseek.c b/lib/blkid/llseek.c index 0f47632..4f49052 100644 --- a/lib/blkid/llseek.c +++ b/lib/blkid/llseek.c @@ -125,12 +125,16 @@ blkid_loff_t blkid_llseek(int fd, blkid_loff_t offset, int whence) blkid_loff_t blkid_llseek(int fd, blkid_loff_t offset, int origin) { +#if defined(HAVE_LSEEK64) && defined(HAVE_LSEEK64_PROTOTYPE) + return lseek64 (fd, offset, origin); +#else if ((sizeof(off_t) < sizeof(blkid_loff_t)) && (offset >= ((blkid_loff_t) 1 << ((sizeof(off_t)*8) - 1)))) { errno = EOVERFLOW; return -1; } return lseek(fd, (off_t) offset, origin); +#endif } #endif /* linux */ diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog index 9bbf393..edf9afc 100644 --- a/lib/ext2fs/ChangeLog +++ b/lib/ext2fs/ChangeLog @@ -1,3 +1,8 @@ +2004-09-17 Theodore Ts'o + + * llseek.c (ext2fs_llseek): On non-linux systems, use lseek64() if + it is present. (Addresses Debian bug #269044) + 2004-07-28 Theodore Ts'o * rw_bitmaps.c (read_bitmaps), block.c (block_iterate_ind, diff --git a/lib/ext2fs/llseek.c b/lib/ext2fs/llseek.c index 855560f..aa4f54d 100644 --- a/lib/ext2fs/llseek.c +++ b/lib/ext2fs/llseek.c @@ -121,12 +121,16 @@ ext2_loff_t ext2fs_llseek (int fd, ext2_loff_t offset, int origin) ext2_loff_t ext2fs_llseek (int fd, ext2_loff_t offset, int origin) { +#if defined(HAVE_LSEEK64) && defined(HAVE_LSEEK64_PROTOTYPE) + return lseek64 (fd, offset, origin); +#else if ((sizeof(off_t) < sizeof(ext2_loff_t)) && (offset >= ((ext2_loff_t) 1 << ((sizeof(off_t)*8) -1)))) { errno = EINVAL; return -1; } return lseek (fd, (off_t) offset, origin); +#endif } #endif /* linux */ -- 1.8.3.1