diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1fc7796..e9b3e75 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,5 @@
 cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR)
 
-cmake_policy(SET CMP0054 OLD)
-
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
 
 message("${CMAKE_MODULE_PATH}")
@@ -10,27 +8,18 @@
 
 #SET(HUNTER_STATUS_DEBUG ON)
 
-#SET(MSAN_CXX_FLAGS "-fsanitize=memory -stdlib=libc++ -I/home/ed/libcxx_msan/include -I/home/ed/libcxx_msan/include/c++/v1")
-#SET(MSAN_LINKER_EXE_FLAGS "${MSAN_CXX_FLAGS} -lc++abi -L/home/ed/libcxx_msan/lib -Wl,-rpath,I/home/ed/libcxx_msan/lib")
-
-#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MSAN_CXX_FLAGS}")
-#SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${MSAN_LINKER_EXE_FLAGS}")
 
 # Debug information
 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fno-omit-frame-pointer")
 
 #SET(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} -fno-rtti")
 #SET(CMAKE_C_FLAGS  "${CMAKE_C_FLAGS} -fno-rtti")
-
 include("cmake/HunterGate.cmake")
 HunterGate(
     URL "https://github.com/ruslo/hunter/archive/v0.18.44.tar.gz"
     SHA1 "a78f0b377b8e53c038f12fc18b0c02564c4534c8"
 )
 
-
-option(BUILD_FOR_EMBEDDED "Build for device target" ON)
-
 project(bmc-webserver CXX C)
 
 set(CMAKE_CXX_STANDARD 14)
@@ -38,10 +27,52 @@
 
 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 
+if (MSAN)
+  if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+    message(FATAL_ERROR "Cannot enable MSAN unless using Clang")
+  endif()
+
+  if (ASAN)
+    message(FATAL_ERROR "ASAN and MSAN are mutually exclusive")
+  endif()
+
+  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MSAN_CXX_FLAGS}")
+  SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${MSAN_LINKER_EXE_FLAGS}")
+
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer")
+  set(OPENSSL_NO_ASM "1")
+  set(LIBC++ ON)
+endif()
+
+if (ASAN)
+  if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+    message(FATAL_ERROR "Cannot enable ASAN unless using Clang")
+  endif()
+
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
+  set(OPENSSL_NO_ASM "1")
+endif()
+
+if (GCOV)
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
+endif()
+
 if ( ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR} )
     message( FATAL_ERROR "In-source builds not allowed. Please make a new directory (usually called build) and run CMake from there. You may need to remove CMakeCache.txt." )
 endif()
 
+if(LIBC++)
+  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
+  SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lc++abi")
+  if (MSAN)
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/home/ed/libcxx_msan/include -I/home/ed/libcxx_msan/include/c++/v1")
+    SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/home/ed/libcxx_msan/lib -Wl,-rpath,I/home/ed/libcxx_msan/lib")
+  endif(MSAN)
+endif(LIBC++)
+
 # general
 option(BUILD_SHARED_LIBS "Build as shared library" OFF)
 option(BUILD_UT "Enable Unit test" ON)
@@ -61,8 +92,8 @@
 add_definitions(-DBOOST_SYSTEM_NO_DEPRECATED)
 add_definitions(-DBOOST_ALL_NO_LIB)
 set(Boost_USE_STATIC_LIBS ON)
-hunter_add_package(Boost COMPONENTS system)
-find_package(Boost COMPONENTS system)
+hunter_add_package(Boost)
+find_package(Boost)
 
 #Openssl
 hunter_add_package(OpenSSL)
@@ -92,12 +123,6 @@
     set_source_files_properties(g3log/src/logworker.cpp PROPERTIES COMPILE_FLAGS -Wno-braced-scalar-init)
 endif()
 
-set_target_properties(g3logger PROPERTIES
-    LINKER_LANGUAGE CXX
-    OUTPUT_NAME g3logger
-    CLEAN_DIRECT_OUTPUT 1)
-target_link_libraries(g3logger ${PLATFORM_LINK_LIBRIES})
-
 #lib jpeg
 set(BUILD_STATIC ON)
 #include_directories(libjpeg)
@@ -212,7 +237,6 @@
 add_executable(bmcweb ${WEBSERVER_MAIN} ${HDR_FILES} ${SRC_FILES})
 target_link_libraries(bmcweb pthread)
 target_link_libraries(bmcweb OpenSSL::SSL OpenSSL::Crypto)
-target_link_libraries(bmcweb Boost::system)
 target_link_libraries(bmcweb g3logger)
 target_link_libraries(bmcweb ${ZLIB_LIBRARIES})
 add_dependencies(bmcweb packagestaticcpp)
diff --git a/include/web_kvm.hpp b/include/web_kvm.hpp
index df0bef5..10291ca 100644
--- a/include/web_kvm.hpp
+++ b/include/web_kvm.hpp
@@ -1,6 +1,6 @@
+#include <string>
 #include <crow/app.h>
 #include <boost/endian/arithmetic.hpp>
-#include <string>
 
 #include <ast_jpeg_decoder.hpp>
 #include <ast_video_puller.hpp>
@@ -51,12 +51,11 @@
   client_cut_text = 6
 };
 
-enum class server_to_client_message_type : uint8_t
-{
-    framebuffer_update = 0,
-    set_color_map_entries = 1,
-    bell_message = 2,
-    server_cut_text = 3
+enum class server_to_client_message_type : uint8_t {
+  framebuffer_update = 0,
+  set_color_map_entries = 1,
+  bell_message = 2,
+  server_cut_text = 3
 };
 
 struct set_pixel_format_msg {
@@ -143,8 +142,9 @@
   std::string serialized(vector_size, 0);
 
   size_t i = 0;
-  serialized[i++] = static_cast<char>(server_to_client_message_type::framebuffer_update);  // Type
-  serialized[i++] = 0;  // Pad byte
+  serialized[i++] = static_cast<char>(
+      server_to_client_message_type::framebuffer_update);  // Type
+  serialized[i++] = 0;                                     // Pad byte
   boost::endian::big_uint16_t number_of_rectangles = msg.rectangles.size();
   std::memcpy(&serialized[i], &number_of_rectangles,
               sizeof(number_of_rectangles));
diff --git a/static/noVNC b/static/noVNC
index b56d975..b69dda9 160000
--- a/static/noVNC
+++ b/static/noVNC
@@ -1 +1 @@
-Subproject commit b56d97524807b125d047730331031ddd00f9c61f
+Subproject commit b69dda9b19f538c648cb11faddc50f30b93bac47
