Browse code

tls: proper check of libssl versions used for compilation and available on system

- shift out the last 12bits, being the patch version and status (see man
SSLeay)
- reported by Victor Seva, GH #662

(cherry picked from commit c38b4c7345a6806f48a0cdb07841e10bc962e1bf)
(cherry picked from commit 253909bf673c0a59e7adf578bb5df73eb157d0f2)
(cherry picked from commit 5632abc108bf8ed8157a77806ea80b962db3fa4f)
(cherry picked from commit 0a5f99b28d01d79cf2675df6d2a6220167e2476e)

Daniel-Constantin Mierla authored on 07/06/2016 13:21:06
Showing 1 changed files
... ...
@@ -528,8 +528,10 @@ int init_tls_h(void)
528 528
 #endif
529 529
 	ssl_version=SSLeay();
530 530
 	/* check if version have the same major minor and fix level
531
-	 * (e.g. 0.9.8a & 0.9.8c are ok, but 0.9.8 and 0.9.9x are not) */
532
-	if ((ssl_version>>8)!=(OPENSSL_VERSION_NUMBER>>8)){
531
+	 * (e.g. 0.9.8a & 0.9.8c are ok, but 0.9.8 and 0.9.9x are not)
532
+	 * - values is represented as 0xMMNNFFPPS: major minor fix patch status
533
+	 *   0x00090705f == 0.9.7e release */
534
+	if ((ssl_version>>12)!=(OPENSSL_VERSION_NUMBER>>12)){
533 535
 		LOG(L_CRIT, "ERROR: tls: init_tls_h: installed openssl library "
534 536
 				"version is too different from the library the ser tls module "
535 537
 				"was compiled with: installed \"%s\" (0x%08lx), compiled "