From 4f5d5a7857b48b6c34608f1e8dc2fe354cacd373 Mon Sep 17 00:00:00 2001 From: Rucha Deodhar Date: Mon, 28 Dec 2020 21:27:27 +0530 Subject: MDEV-23875: select into outfile not respect UMASK and UMASK_DIR Analysis: select into outfile creates files everytime with 666 permission, regardsless if umask environment variables and umask settings on OS level. It seems hardcoded. Fix: change 0666 to 0644 which will let anybody consume the file but not change it. --- sql/sql_class.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 7eaafbd9044..b16a750aa9b 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -2859,12 +2859,12 @@ static File create_file(THD *thd, char *path, sql_exchange *exchange, } /* Create the file world readable */ if ((file= mysql_file_create(key_select_to_file, - path, 0666, O_WRONLY|O_EXCL, MYF(MY_WME))) < 0) + path, 0644, O_WRONLY|O_EXCL, MYF(MY_WME))) < 0) return file; #ifdef HAVE_FCHMOD - (void) fchmod(file, 0666); // Because of umask() + (void) fchmod(file, 0644); // Because of umask() #else - (void) chmod(path, 0666); + (void) chmod(path, 0644; #endif if (init_io_cache(cache, file, 0L, WRITE_CACHE, 0L, 1, MYF(MY_WME))) { -- cgit v1.2.1