diff --git a/configure.ac b/configure.ac index 5e4b4029..0501a02d 100644 --- a/configure.ac +++ b/configure.ac @@ -116,7 +116,7 @@ AC_PROG_CXX # Compiler flags. AC_ARG_ENABLE(debug, [AC_HELP_STRING([--enable-debug], [setup flags (gcc) for debugging (default=no)])], if test "x$enable_debug" = xyes; then - CFLAGS="$CFLAGS -O2 -g" + CFLAGS="$CFLAGS -O0 -g" fi CPPFLAGS="$CPPFLAGS -DDEBUG" LDFLAGS="$LDFLAGS",) diff --git a/src/data-types/mailstream_ssl.c b/src/data-types/mailstream_ssl.c index bd680ae5..d6494312 100644 --- a/src/data-types/mailstream_ssl.c +++ b/src/data-types/mailstream_ssl.c @@ -338,6 +338,13 @@ static int wait_SSL_connect(int s, int want_read, time_t timeout_seconds) timeout.tv_usec = 0; } #if defined(WIN32) || !USE_POLL + if (s >= FD_SETSIZE) { +#if defined(DEBUG) + /* too many opened connections? socket leaks? */ + fprintf( stderr, "socket descriptor %d out of range\n", s); +#endif + return -1; + } FD_ZERO(&fds); FD_SET(s, &fds); /* TODO: how to cancel this ? */