Skip to content

Commit 356ae62

Browse files
committed
Crash during configure without development SSL libraries installed
Incorrect usage of OPENSSL_INCLUDE_DIR variable within cmake caused the configure step to fail. The variable was used before being checked if the include directory actually existed.
1 parent 56da625 commit 356ae62

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

cmake/ssl.cmake

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -156,37 +156,37 @@ MACRO (MYSQL_CHECK_SSL)
156156
LIST(REVERSE CMAKE_FIND_LIBRARY_SUFFIXES)
157157
ENDIF()
158158

159-
# Verify version number. Version information looks like:
160-
# #define OPENSSL_VERSION_NUMBER 0x1000103fL
161-
# Encoded as MNNFFPPS: major minor fix patch status
162-
FILE(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h"
163-
OPENSSL_VERSION_NUMBER
164-
REGEX "^#define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*"
165-
)
166-
STRING(REGEX REPLACE
167-
"^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9]).*$" "\\1"
168-
OPENSSL_MAJOR_VERSION "${OPENSSL_VERSION_NUMBER}"
169-
)
170-
171159
IF(OPENSSL_INCLUDE_DIR AND
172160
OPENSSL_LIBRARIES AND
173161
CRYPTO_LIBRARY
174162
)
163+
# Verify version number. Version information looks like:
164+
# #define OPENSSL_VERSION_NUMBER 0x1000103fL
165+
# Encoded as MNNFFPPS: major minor fix patch status
166+
FILE(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h"
167+
OPENSSL_VERSION_NUMBER
168+
REGEX "^#define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*"
169+
)
170+
STRING(REGEX REPLACE
171+
"^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9]).*$" "\\1"
172+
OPENSSL_MAJOR_VERSION "${OPENSSL_VERSION_NUMBER}"
173+
)
174+
INCLUDE(CheckSymbolExists)
175+
SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
176+
CHECK_SYMBOL_EXISTS(SHA512_DIGEST_LENGTH "openssl/sha.h"
177+
HAVE_SHA512_DIGEST_LENGTH)
175178
SET(OPENSSL_FOUND TRUE)
176179
ELSE()
177180
SET(OPENSSL_FOUND FALSE)
178181
ENDIF()
179182

180-
MESSAGE(STATUS "OPENSSL_INCLUDE_DIR = ${OPENSSL_INCLUDE_DIR}")
181-
MESSAGE(STATUS "OPENSSL_LIBRARIES = ${OPENSSL_LIBRARIES}")
182-
MESSAGE(STATUS "CRYPTO_LIBRARY = ${CRYPTO_LIBRARY}")
183-
MESSAGE(STATUS "OPENSSL_MAJOR_VERSION = ${OPENSSL_MAJOR_VERSION}")
184-
185-
INCLUDE(CheckSymbolExists)
186-
SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
187-
CHECK_SYMBOL_EXISTS(SHA512_DIGEST_LENGTH "openssl/sha.h"
188-
HAVE_SHA512_DIGEST_LENGTH)
189183
IF(OPENSSL_FOUND AND HAVE_SHA512_DIGEST_LENGTH)
184+
MESSAGE(STATUS "OPENSSL_INCLUDE_DIR = ${OPENSSL_INCLUDE_DIR}")
185+
MESSAGE(STATUS "OPENSSL_LIBRARIES = ${OPENSSL_LIBRARIES}")
186+
MESSAGE(STATUS "CRYPTO_LIBRARY = ${CRYPTO_LIBRARY}")
187+
MESSAGE(STATUS "OPENSSL_MAJOR_VERSION = ${OPENSSL_MAJOR_VERSION}")
188+
189+
190190
SET(SSL_SOURCES "")
191191
SET(SSL_LIBRARIES ${OPENSSL_LIBRARIES} ${CRYPTO_LIBRARY})
192192
IF(CMAKE_SYSTEM_NAME MATCHES "SunOS")

0 commit comments

Comments
 (0)