From be77aa550ef0450b00eb62880d4d98112ba86e50 Mon Sep 17 00:00:00 2001 From: miod <> Date: Wed, 16 Apr 2014 19:54:20 +0000 Subject: - Why do we hide from the OpenSSL police, dad? - Because they're not like us, son. They use macros to wrap stdio routines, for an undocumented (OPENSSL_USE_APPLINK) use case, which only serves to obfuscate the code. ok tedu@ --- src/lib/libcrypto/bio/bss_file.c | 68 ++++++++-------------------------------- 1 file changed, 13 insertions(+), 55 deletions(-) (limited to 'src/lib/libcrypto/bio/bss_file.c') diff --git a/src/lib/libcrypto/bio/bss_file.c b/src/lib/libcrypto/bio/bss_file.c index 59e48e6659..c92c4753aa 100644 --- a/src/lib/libcrypto/bio/bss_file.c +++ b/src/lib/libcrypto/bio/bss_file.c @@ -86,7 +86,7 @@ #include #include #include "cryptlib.h" -#include "bio_lcl.h" +#include #include #if !defined(OPENSSL_NO_STDIO) @@ -134,7 +134,6 @@ BIO return (NULL); } - BIO_clear_flags(ret, BIO_FLAGS_UPLINK); /* we did fopen -> we disengage UPLINK */ BIO_set_fp(ret, file, BIO_CLOSE); return (ret); } @@ -147,7 +146,6 @@ BIO if ((ret = BIO_new(BIO_s_file())) == NULL) return (NULL); - BIO_set_flags(ret, BIO_FLAGS_UPLINK); /* redundant, left for documentation puposes */ BIO_set_fp(ret, stream, close_flag); return (ret); } @@ -164,7 +162,7 @@ file_new(BIO *bi) bi->init = 0; bi->num = 0; bi->ptr = NULL; - bi->flags=BIO_FLAGS_UPLINK; /* default to UPLINK */ + bi->flags=0; return (1); } @@ -175,12 +173,9 @@ file_free(BIO *a) return (0); if (a->shutdown) { if ((a->init) && (a->ptr != NULL)) { - if (a->flags&BIO_FLAGS_UPLINK) - UP_fclose (a->ptr); - else - fclose (a->ptr); + fclose (a->ptr); a->ptr = NULL; - a->flags = BIO_FLAGS_UPLINK; + a->flags = 0; } a->init = 0; } @@ -193,12 +188,8 @@ file_read(BIO *b, char *out, int outl) int ret = 0; if (b->init && (out != NULL)) { - if (b->flags&BIO_FLAGS_UPLINK) - ret = UP_fread(out, 1,(int)outl, b->ptr); - else - ret = fread(out, 1,(int)outl,(FILE *)b->ptr); - if (ret == 0 && (b->flags & BIO_FLAGS_UPLINK) ? - UP_ferror((FILE *)b->ptr) : ferror((FILE *)b->ptr)) { + ret = fread(out, 1,(int)outl,(FILE *)b->ptr); + if (ret == 0 && ferror((FILE *)b->ptr)) { SYSerr(SYS_F_FREAD, errno); BIOerr(BIO_F_FILE_READ, ERR_R_SYS_LIB); ret = -1; @@ -213,10 +204,7 @@ file_write(BIO *b, const char *in, int inl) int ret = 0; if (b->init && (in != NULL)) { - if (b->flags&BIO_FLAGS_UPLINK) - ret = UP_fwrite(in,(int)inl, 1, b->ptr); - else - ret = fwrite(in,(int)inl, 1,(FILE *)b->ptr); + ret = fwrite(in,(int)inl, 1,(FILE *)b->ptr); if (ret) ret = inl; /* ret=fwrite(in,1,(int)inl,(FILE *)b->ptr); */ @@ -238,41 +226,20 @@ file_ctrl(BIO *b, int cmd, long num, void *ptr) switch (cmd) { case BIO_C_FILE_SEEK: case BIO_CTRL_RESET: - if (b->flags&BIO_FLAGS_UPLINK) - ret = (long)UP_fseek(b->ptr, num, 0); - else - ret = (long)fseek(fp, num, 0); + ret = (long)fseek(fp, num, 0); break; case BIO_CTRL_EOF: - if (b->flags&BIO_FLAGS_UPLINK) - ret = (long)UP_feof(fp); - else - ret = (long)feof(fp); + ret = (long)feof(fp); break; case BIO_C_FILE_TELL: case BIO_CTRL_INFO: - if (b->flags&BIO_FLAGS_UPLINK) - ret = UP_ftell(b->ptr); - else - ret = ftell(fp); + ret = ftell(fp); break; case BIO_C_SET_FILE_PTR: file_free(b); b->shutdown = (int)num&BIO_CLOSE; b->ptr = ptr; b->init = 1; -#if BIO_FLAGS_UPLINK!=0 -#if defined(_IOB_ENTRIES) - /* Safety net to catch purely internal BIO_set_fp calls */ - if ((size_t)ptr >= (size_t)stdin && - (size_t)ptr < (size_t)(stdin + _IOB_ENTRIES)) - BIO_clear_flags(b, BIO_FLAGS_UPLINK); -#endif -#endif -#ifdef UP_fsetmod - if (b->flags&BIO_FLAGS_UPLINK) - UP_fsetmod(b->ptr,(char)((num&BIO_FP_TEXT)?'t':'b')); -#endif break; case BIO_C_SET_FILENAME: file_free(b); @@ -302,7 +269,6 @@ file_ctrl(BIO *b, int cmd, long num, void *ptr) } b->ptr = fp; b->init = 1; - BIO_clear_flags(b, BIO_FLAGS_UPLINK); /* we did fopen -> we disengage UPLINK */ break; case BIO_C_GET_FILE_PTR: /* the ptr parameter is actually a FILE ** in this case. */ @@ -318,10 +284,7 @@ file_ctrl(BIO *b, int cmd, long num, void *ptr) b->shutdown = (int)num; break; case BIO_CTRL_FLUSH: - if (b->flags&BIO_FLAGS_UPLINK) - UP_fflush(b->ptr); - else - fflush((FILE *)b->ptr); + fflush((FILE *)b->ptr); break; case BIO_CTRL_DUP: ret = 1; @@ -344,13 +307,8 @@ file_gets(BIO *bp, char *buf, int size) int ret = 0; buf[0] = '\0'; - if (bp->flags&BIO_FLAGS_UPLINK) { - if (!UP_fgets(buf, size, bp->ptr)) - goto err; - } else { - if (!fgets(buf, size,(FILE *)bp->ptr)) - goto err; - } + if (!fgets(buf, size,(FILE *)bp->ptr)) + goto err; if (buf[0] != '\0') ret = strlen(buf); err: -- cgit v1.2.3-55-g6feb