Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37546965
en ru br
Репозитории ALT
S:8.0.30-alt2
5.1: 5.0.89-alt1
4.1: 5.0.51-alt2.a
4.0: 5.0.51-alt2.a.M40.2
+updates:5.0.51-alt2.a.M40.1
3.0: 4.0.24-alt1
www.altlinux.org/Changes

Группа :: Базы Данных
Пакет: MySQL

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: mysql-8.0.12-alt-load_defaults.patch
Скачать


diff --git a/mysys/my_default.cc b/mysys/my_default.cc
index 1317e3627bc..37ef4146efa 100644
--- a/mysys/my_default.cc
+++ b/mysys/my_default.cc
@@ -127,6 +127,8 @@ extern PSI_file_key key_file_cnf;
 #endif
 PSI_memory_key key_memory_defaults;
 
+#define ALT_LOAD_DEFAULTS
+
 /**
    arguments separator
 
@@ -908,6 +910,21 @@ static int search_default_file_with_ext(Process_option_func opt_handler,
   } else {
     if (!(fp = mysql_file_fopen(key_file_cnf, name, O_RDONLY, MYF(0))))
       return 1; /* Ignore wrong files */
+
+#ifdef ALT_LOAD_DEFAULTS
+      /* Check for untrusted source. */
+      /* FIXME: seems like race condition by now, need review!
+       {
+         struct stat st;
+         if (fstat (fileno(fp), &st) < 0)
+            goto success;
+
+         if (!getuid() && (st.st_uid || (st.st_mode & 022)))
+            goto success;
+       }
+      */
+#endif /* ALT_LOAD_DEFAULTS */
+
   }
 
   while (mysql_file_getline(buff, sizeof(buff) - 1, fp, is_login_file)) {
@@ -1111,6 +1128,10 @@ static int search_default_file_with_ext(Process_option_func opt_handler,
       if (opt_handler(handler_ctx, curr_gr, option, name)) goto err;
     }
   }
+
+#ifdef ALT_LOAD_DEFAULTS
+success:
+#endif /* ALT_LOAD_DEFAULTS */
   mysql_file_fclose(fp, MYF(0));
   return (0);
 
@@ -1578,6 +1599,12 @@ static const char **init_default_directories(MEM_ROOT *alloc) {
     errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs);
 #endif /* DEFAULT_SYSCONFDIR */
 
+#ifdef ALT_LOAD_DEFAULTS
+  /* FIXME: it *is* defined but /var/lib/mysql/my.cnf gets ignored somehow */
+  /* #ifdef MYSQL_DATADIR */
+    errors += add_directory(alloc, MYSQL_DATADIR, dirs);
+  /* #endif */
+#endif /* ALT_LOAD_DEFAULTS */
 #endif
 
   if ((env = getenv("MYSQL_HOME"))) errors += add_directory(alloc, env, dirs);
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin