From 8fa6a40be2935ca109a28cc43d28cd27051ada01 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Mon, 6 Jun 2005 11:58:31 +0000 Subject: [PATCH] Allow BIO_s_file to open and sequentially access files larger than 2GB on affected platforms. PR: 973 --- crypto/bio/bss_file.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/crypto/bio/bss_file.c b/crypto/bio/bss_file.c index dd17802f8f..ccc741556e 100644 --- a/crypto/bio/bss_file.c +++ b/crypto/bio/bss_file.c @@ -65,6 +65,24 @@ #ifndef HEADER_BSS_FILE_C #define HEADER_BSS_FILE_C +#if defined(__linux) || defined(__sun) || defined(__hpux) +/* Following definition aliases fopen to fopen64 on above mentioned + * platforms. This makes it possible to open and sequentially access + * files larger than 2GB from 32-bit application. It does not allow to + * traverse them beyond 2GB with fseek/ftell, but on the other hand *no* + * 32-bit platform permits that, not with fseek/ftell. Not to mention + * that breaking 2GB limit for seeking would require surgery to *our* + * API. But sequential access suffices for practical cases when you + * can run into large files, such as fingerprinting, so we can let API + * alone. For reference, the list of 32-bit platforms which allow for + * sequential access of large files without extra "magic" comprise *BSD, + * Darwin, IRIX... + */ +#ifndef _FILE_OFFSET_BITS +#define _FILE_OFFSET_BITS 64 +#endif +#endif + #include #include #include "cryptlib.h" -- 2.34.1