[Boost-bugs] [Boost C++ Libraries] #7209: Asio SSL overflow in constant

Subject: [Boost-bugs] [Boost C++ Libraries] #7209: Asio SSL overflow in constant
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-08-08 11:59:12


#7209: Asio SSL overflow in constant
-------------------------------------------+--------------------------------
 Reporter: ramon.casellas@… | Owner: chris_kohlhoff
     Type: Bugs | Status: new
Milestone: Boost 1.51.0 | Component: asio
  Version: Boost 1.51.0 | Severity: Regression
 Keywords: asio SSL options overflow int |
-------------------------------------------+--------------------------------
 Dear Chris,

 I am getting a warning about overflow in SSL context options.

 Environment: Ubuntu Quantal (development)
 boost trunk (also applies to 1.50 1.51, ...)
 Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
 4.7.1-6ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
 --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-
 suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib
 --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
 --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls
 --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-
 libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-
 objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-
 checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
 --target=x86_64-linux-gnu
 Thread model: posix
 gcc version 4.7.1 (Ubuntu/Linaro 4.7.1-6ubuntu1)



 {{{
 In file included from
 /adnet/boost-1.50.0/include/boost/asio/ssl/context.hpp:26:0,
                  from /adnet/boost-1.50.0/include/boost/asio/ssl.hpp:19,
                  from /adnet/src/cttc-pce-
 trunk/apps/server/plugins/openflow/connection.cpp:12:
 /adnet/boost-1.50.0/include/boost/asio/ssl/context_base.hpp:92:42:
 warning: overflow in implicit constant conversion [-Woverflow]
 }}}

 In context_base.hpp

 Note in
 /usr/include/openssl/ssl.h:564:23019:


 {{{
 /* SSL_OP_ALL: various bug workarounds that should be rather harmless.
  * This used to be 0x000FFFFFL before 0.9.7. */
 #define SSL_OP_ALL 0x80000BFFL
 }}}

 the new value seems to overflow?

 could you please consider something in the lines of:
 {{{
 --- /adnet/boost-trunk/boost/asio/ssl/context_base.hpp 2012-01-12
 11:33:11.408503342 +0100
 +++ /adnet/boost-1.50.0/include/boost/asio/ssl/context_base.hpp 2012-08-08
 13:55:48.660086890 +0200
 @@ -71,29 +71,29 @@
    };

    /// Bitmask type for SSL options.
 - typedef int options;
 + typedef long options;

  #if defined(GENERATING_DOCUMENTATION)
    /// Implement various bug workarounds.
 - static const int default_workarounds = implementation_defined;
 + static const long default_workarounds = implementation_defined;

    /// Always create a new key when using tmp_dh parameters.
 - static const int single_dh_use = implementation_defined;
 + static const long single_dh_use = implementation_defined;

    /// Disable SSL v2.
 - static const int no_sslv2 = implementation_defined;
 + static const long no_sslv2 = implementation_defined;

    /// Disable SSL v3.
 - static const int no_sslv3 = implementation_defined;
 + static const long no_sslv3 = implementation_defined;

    /// Disable TLS v1.
 - static const int no_tlsv1 = implementation_defined;
 + static const long no_tlsv1 = implementation_defined;
  #else
 - BOOST_STATIC_CONSTANT(int, default_workarounds = SSL_OP_ALL);
 - BOOST_STATIC_CONSTANT(int, single_dh_use = SSL_OP_SINGLE_DH_USE);
 - BOOST_STATIC_CONSTANT(int, no_sslv2 = SSL_OP_NO_SSLv2);
 - BOOST_STATIC_CONSTANT(int, no_sslv3 = SSL_OP_NO_SSLv3);
 - BOOST_STATIC_CONSTANT(int, no_tlsv1 = SSL_OP_NO_TLSv1);
 + BOOST_STATIC_CONSTANT(long, default_workarounds = SSL_OP_ALL);
 + BOOST_STATIC_CONSTANT(long, single_dh_use = SSL_OP_SINGLE_DH_USE);
 + BOOST_STATIC_CONSTANT(long, no_sslv2 = SSL_OP_NO_SSLv2);
 + BOOST_STATIC_CONSTANT(long, no_sslv3 = SSL_OP_NO_SSLv3);
 + BOOST_STATIC_CONSTANT(long, no_tlsv1 = SSL_OP_NO_TLSv1);
  #endif

    /// File format types.

 }}}
 or, if you do not consider that a bug, silence the warning?

 note that SSL_CTX_set_options takes a long, if I am not mistaken

 Thanks in advance,
 Ramon

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/7209>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:10 UTC