diff options
author | Andy Polyakov <appro@openssl.org> | 2012-06-11 08:52:11 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2012-06-11 08:52:11 +0000 |
commit | 80c42f3e0c34451dd7cfc65e07bc639759ef07d2 (patch) | |
tree | f3345dffce264ab20f6491794f949e9eb6fd93e5 | |
parent | 7a71af86ce75751f3cb2e9e9e3f2e0715b39b101 (diff) |
b_sock.c: make getsockopt work in cases when optlen is 64-bit value.
-rw-r--r-- | crypto/bio/b_sock.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/crypto/bio/b_sock.c b/crypto/bio/b_sock.c index 41f958be71..a026b3e0b0 100644 --- a/crypto/bio/b_sock.c +++ b/crypto/bio/b_sock.c @@ -233,13 +233,14 @@ int BIO_get_port(const char *str, unsigned short *port_ptr) int BIO_sock_error(int sock) { int j,i; - int size; + union { size_t s; int i; } size; #if defined(OPENSSL_SYS_BEOS_R5) return 0; #endif - - size=sizeof(int); + + /* heuristic way to adapt for platforms that expect 64-bit optlen */ + size.s=0, size.i=sizeof(j); /* Note: under Windows the third parameter is of type (char *) * whereas under other systems it is (void *) if you don't have * a cast it will choke the compiler: if you do have a cast then |