From: Andy Polyakov Date: Mon, 6 Jun 2005 11:58:31 +0000 (+0000) Subject: Allow BIO_s_file to open and sequentially access files larger than 2GB on X-Git-Tag: OpenSSL_0_9_8k^2~2033 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=8fa6a40be2935ca109a28cc43d28cd27051ada01 Allow BIO_s_file to open and sequentially access files larger than 2GB on affected platforms. PR: 973 --- 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"