diff options
Diffstat (limited to 'src/lib/libcrypto/bio')
-rw-r--r-- | src/lib/libcrypto/bio/b_print.c | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/bio/bf_buff.c | 1 | ||||
-rw-r--r-- | src/lib/libcrypto/bio/bss_bio.c | 55 | ||||
-rw-r--r-- | src/lib/libcrypto/bio/bss_file.c | 21 |
4 files changed, 75 insertions, 4 deletions
diff --git a/src/lib/libcrypto/bio/b_print.c b/src/lib/libcrypto/bio/b_print.c index a9e552f245..2cfc689dd6 100644 --- a/src/lib/libcrypto/bio/b_print.c +++ b/src/lib/libcrypto/bio/b_print.c | |||
@@ -836,5 +836,5 @@ int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) | |||
836 | * had the buffer been large enough.) */ | 836 | * had the buffer been large enough.) */ |
837 | return -1; | 837 | return -1; |
838 | else | 838 | else |
839 | return (retlen <= INT_MAX) ? retlen : -1; | 839 | return (retlen <= INT_MAX) ? (int)retlen : -1; |
840 | } | 840 | } |
diff --git a/src/lib/libcrypto/bio/bf_buff.c b/src/lib/libcrypto/bio/bf_buff.c index 1cecd70579..c1fd75aaad 100644 --- a/src/lib/libcrypto/bio/bf_buff.c +++ b/src/lib/libcrypto/bio/bf_buff.c | |||
@@ -494,6 +494,7 @@ static int buffer_gets(BIO *b, char *buf, int size) | |||
494 | if (i <= 0) | 494 | if (i <= 0) |
495 | { | 495 | { |
496 | BIO_copy_next_retry(b); | 496 | BIO_copy_next_retry(b); |
497 | *buf='\0'; | ||
497 | if (i < 0) return((num > 0)?num:i); | 498 | if (i < 0) return((num > 0)?num:i); |
498 | if (i == 0) return(num); | 499 | if (i == 0) return(num); |
499 | } | 500 | } |
diff --git a/src/lib/libcrypto/bio/bss_bio.c b/src/lib/libcrypto/bio/bss_bio.c index aa58dab046..0f9f0955b4 100644 --- a/src/lib/libcrypto/bio/bss_bio.c +++ b/src/lib/libcrypto/bio/bss_bio.c | |||
@@ -1,4 +1,57 @@ | |||
1 | /* crypto/bio/bss_bio.c -*- Mode: C; c-file-style: "eay" -*- */ | 1 | /* crypto/bio/bss_bio.c -*- Mode: C; c-file-style: "eay" -*- */ |
2 | /* ==================================================================== | ||
3 | * Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions | ||
7 | * are met: | ||
8 | * | ||
9 | * 1. Redistributions of source code must retain the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer. | ||
11 | * | ||
12 | * 2. Redistributions in binary form must reproduce the above copyright | ||
13 | * notice, this list of conditions and the following disclaimer in | ||
14 | * the documentation and/or other materials provided with the | ||
15 | * distribution. | ||
16 | * | ||
17 | * 3. All advertising materials mentioning features or use of this | ||
18 | * software must display the following acknowledgment: | ||
19 | * "This product includes software developed by the OpenSSL Project | ||
20 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" | ||
21 | * | ||
22 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
23 | * endorse or promote products derived from this software without | ||
24 | * prior written permission. For written permission, please contact | ||
25 | * openssl-core@openssl.org. | ||
26 | * | ||
27 | * 5. Products derived from this software may not be called "OpenSSL" | ||
28 | * nor may "OpenSSL" appear in their names without prior written | ||
29 | * permission of the OpenSSL Project. | ||
30 | * | ||
31 | * 6. Redistributions of any form whatsoever must retain the following | ||
32 | * acknowledgment: | ||
33 | * "This product includes software developed by the OpenSSL Project | ||
34 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)" | ||
35 | * | ||
36 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
37 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
38 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
39 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
40 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
41 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
42 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
43 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
44 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
45 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
46 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
47 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
48 | * ==================================================================== | ||
49 | * | ||
50 | * This product includes cryptographic software written by Eric Young | ||
51 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
52 | * Hudson (tjh@cryptsoft.com). | ||
53 | * | ||
54 | */ | ||
2 | 55 | ||
3 | /* Special method for a BIO where the other endpoint is also a BIO | 56 | /* Special method for a BIO where the other endpoint is also a BIO |
4 | * of this kind, handled by the same thread (i.e. the "peer" is actually | 57 | * of this kind, handled by the same thread (i.e. the "peer" is actually |
@@ -502,7 +555,7 @@ static long bio_ctrl(BIO *bio, int cmd, long num, void *ptr) | |||
502 | break; | 555 | break; |
503 | 556 | ||
504 | case BIO_C_DESTROY_BIO_PAIR: | 557 | case BIO_C_DESTROY_BIO_PAIR: |
505 | /* Effects both BIOs in the pair -- call just once! | 558 | /* Affects both BIOs in the pair -- call just once! |
506 | * Or let BIO_free(bio1); BIO_free(bio2); do the job. */ | 559 | * Or let BIO_free(bio1); BIO_free(bio2); do the job. */ |
507 | bio_destroy_pair(bio); | 560 | bio_destroy_pair(bio); |
508 | ret = 1; | 561 | ret = 1; |
diff --git a/src/lib/libcrypto/bio/bss_file.c b/src/lib/libcrypto/bio/bss_file.c index e4e9df144c..0ca603ee0a 100644 --- a/src/lib/libcrypto/bio/bss_file.c +++ b/src/lib/libcrypto/bio/bss_file.c | |||
@@ -213,12 +213,29 @@ static long MS_CALLBACK file_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
213 | b->shutdown=(int)num&BIO_CLOSE; | 213 | b->shutdown=(int)num&BIO_CLOSE; |
214 | b->ptr=(char *)ptr; | 214 | b->ptr=(char *)ptr; |
215 | b->init=1; | 215 | b->init=1; |
216 | #if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) | 216 | #if defined(OPENSSL_SYS_WINDOWS) |
217 | /* Set correct text/binary mode */ | ||
218 | if (num & BIO_FP_TEXT) | 217 | if (num & BIO_FP_TEXT) |
219 | _setmode(fileno((FILE *)ptr),_O_TEXT); | 218 | _setmode(fileno((FILE *)ptr),_O_TEXT); |
220 | else | 219 | else |
221 | _setmode(fileno((FILE *)ptr),_O_BINARY); | 220 | _setmode(fileno((FILE *)ptr),_O_BINARY); |
221 | #elif defined(OPENSSL_SYS_MSDOS) | ||
222 | { | ||
223 | int fd = fileno((FILE*)ptr); | ||
224 | /* Set correct text/binary mode */ | ||
225 | if (num & BIO_FP_TEXT) | ||
226 | _setmode(fd,_O_TEXT); | ||
227 | /* Dangerous to set stdin/stdout to raw (unless redirected) */ | ||
228 | else | ||
229 | { | ||
230 | if (fd == STDIN_FILENO || fd == STDOUT_FILENO) | ||
231 | { | ||
232 | if (isatty(fd) <= 0) | ||
233 | _setmode(fd,_O_BINARY); | ||
234 | } | ||
235 | else | ||
236 | _setmode(fd,_O_BINARY); | ||
237 | } | ||
238 | } | ||
222 | #elif defined(OPENSSL_SYS_OS2) | 239 | #elif defined(OPENSSL_SYS_OS2) |
223 | if (num & BIO_FP_TEXT) | 240 | if (num & BIO_FP_TEXT) |
224 | setmode(fileno((FILE *)ptr), O_TEXT); | 241 | setmode(fileno((FILE *)ptr), O_TEXT); |