Index: storage/innobase/os/os0file.cc
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc
--- a/storage/innobase/os/os0file.cc	(revision eda8155cb6efa9b4fec7f8975f9df07012756517)
+++ b/storage/innobase/os/os0file.cc	(date 1634175151679)
@@ -846,6 +846,7 @@
 	if (err != 0) {
 		os_file_handle_error_no_exit(name, "fstat()", FALSE);
 	} else {
+		MEM_MAKE_DEFINED(&local_stat, sizeof (struct stat));
 		fblock_size = local_stat.st_blksize;
 	}
 #endif /* UNIV_LINUX */
@@ -2589,6 +2590,8 @@
 		return(false);
 	}
 
+	MEM_MAKE_DEFINED(&statinfo, sizeof (struct stat));
+
 	if (S_ISDIR(statinfo.st_mode)) {
 		*type = OS_FILE_TYPE_DIR;
 
@@ -2911,6 +2914,8 @@
 		return(-1);
 	}
 
+	MEM_MAKE_DEFINED(&statinfo, sizeof statinfo);
+
 	info->size = statinfo.st_size;
 
 	if (S_ISDIR(statinfo.st_mode)) {
@@ -3306,7 +3311,11 @@
 os_file_get_size(os_file_t file)
 {
 	struct stat statbuf;
-	return fstat(file, &statbuf) ? os_offset_t(-1) : statbuf.st_size;
+	int res= fstat(file, &statbuf);
+	if (res)
+		return os_offset_t(-1);
+	MEM_MAKE_DEFINED(&statbuf, sizeof statbuf);
+        return statbuf.st_size;
 }
 
 /** Gets a file size.
@@ -3367,6 +3376,8 @@
 		return(DB_FAIL);
 	}
 
+	MEM_MAKE_DEFINED(statinfo, sizeof (struct stat));
+
 	switch (statinfo->st_mode & S_IFMT) {
 	case S_IFDIR:
 		stat_info->type = OS_FILE_TYPE_DIR;
@@ -5444,6 +5455,7 @@
 		if (fstat(file, &statbuf)) {
 			err = errno;
 		} else {
+			MEM_MAKE_DEFINED(&statbuf, sizeof (struct stat));
 			os_offset_t current_size = statbuf.st_size;
 			if (current_size >= size) {
 				return true;
Index: mysys/charset.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/mysys/charset.c b/mysys/charset.c
--- a/mysys/charset.c	(revision eda8155cb6efa9b4fec7f8975f9df07012756517)
+++ b/mysys/charset.c	(date 1634175151675)
@@ -1431,4 +1431,4 @@
     csname = my_os_charset_to_mysql_charset(csname);
 #endif
   return csname ? csname : MYSQL_DEFAULT_CHARSET_NAME;
-}
\ No newline at end of file
+}
Index: mysys/my_lib.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/mysys/my_lib.c b/mysys/my_lib.c
--- a/mysys/my_lib.c	(revision eda8155cb6efa9b4fec7f8975f9df07012756517)
+++ b/mysys/my_lib.c	(date 1634175151675)
@@ -332,7 +332,12 @@
 #ifdef _WIN32
   DBUG_RETURN(my_win_fstat(Filedes, stat_area));
 #else
-  DBUG_RETURN(fstat(Filedes, (struct stat *) stat_area));
+  int res= fstat(Filedes, (struct stat *) stat_area);
+#if __has_feature(memory_sanitizer)
+  if (res == 0)
+    MEM_MAKE_DEFINED(stat_area, sizeof (struct stat));
+#endif
+  DBUG_RETURN(res);
 #endif
 }
 
@@ -349,7 +354,10 @@
       goto error;
 #ifndef _WIN32
     if (! stat((char *) path, (struct stat *) stat_area) )
+    {
+      MEM_MAKE_DEFINED(stat_area, sizeof (struct stat));
       DBUG_RETURN(stat_area);
+    }
 #else
     if (! my_win_stat(path, stat_area) )
       DBUG_RETURN(stat_area);
Index: cmake/check_compiler_flag.cmake
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/cmake/check_compiler_flag.cmake b/cmake/check_compiler_flag.cmake
--- a/cmake/check_compiler_flag.cmake	(revision eda8155cb6efa9b4fec7f8975f9df07012756517)
+++ b/cmake/check_compiler_flag.cmake	(date 1634177715304)
@@ -15,8 +15,13 @@
     )
 #The regex patterns above are not localized, thus LANG=C
 SET(ENV{LANG} C)
+
+MACRO (MY_COMPILER_FLAG_TEST_VAR lang flag outvar)
+  STRING(REGEX REPLACE "[-,= +]" "_" ${outvar} "have_${lang}_${flag}")
+ENDMACRO()
+
 MACRO (MY_CHECK_C_COMPILER_FLAG flag)
-  STRING(REGEX REPLACE "[-,= +]" "_" result "have_C_${flag}")
+  MY_COMPILER_FLAG_TEST_VAR(C flag result)
   SET(SAVE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
   SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${flag}")
   CHECK_C_SOURCE_COMPILES("int main(void) { return 0; }" ${result}
@@ -25,7 +30,7 @@
 ENDMACRO()
 
 MACRO (MY_CHECK_CXX_COMPILER_FLAG flag)
-  STRING(REGEX REPLACE "[-,= +]" "_" result "have_CXX_${flag}")
+  MY_COMPILER_FLAG_TEST_VAR(CXX flag result)
   SET(SAVE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
   SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${flag}")
   CHECK_CXX_SOURCE_COMPILES("int main(void) { return 0; }" ${result}
Index: client/mysqltest.cc
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/client/mysqltest.cc b/client/mysqltest.cc
--- a/client/mysqltest.cc	(revision eda8155cb6efa9b4fec7f8975f9df07012756517)
+++ b/client/mysqltest.cc	(date 1634175151675)
@@ -10349,6 +10349,7 @@
 
   if ((err_code= regcomp(&r,pattern,cflags)))
   {
+    MEM_MAKE_DEFINED(&r.re_erroffset, sizeof r.re_erroffset);
     check_regerr(&r,err_code);
     return 1;
   }
Index: mysys/my_symlink.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/mysys/my_symlink.c b/mysys/my_symlink.c
--- a/mysys/my_symlink.c	(revision eda8155cb6efa9b4fec7f8975f9df07012756517)
+++ b/mysys/my_symlink.c	(date 1634175151675)
@@ -113,7 +113,11 @@
 {
 #if defined (HAVE_LSTAT) && defined (S_ISLNK)
   struct stat stat_buff;
-  return !lstat(filename, &stat_buff) && S_ISLNK(stat_buff.st_mode);
+  int stat_res= lstat(filename, &stat_buff);
+  if (stat_res)
+    return 1;
+  MEM_MAKE_DEFINED(&stat_buff, sizeof (struct stat));
+  return S_ISLNK(stat_buff.st_mode);
 #elif defined (_WIN32)
   DWORD dwAttr = GetFileAttributes(filename);
   return (dwAttr != INVALID_FILE_ATTRIBUTES) &&
