summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRucha Deodhar <rucha.deodhar@mariadb.com>2020-12-28 21:27:27 +0530
committerRucha Deodhar <rucha.deodhar@mariadb.com>2020-12-29 14:37:04 +0530
commitdbb2938a73b86f6df080786da0f2c9b104470352 (patch)
treee43ab494b0e023fec81bba240e5dc5105bca9719
parent5b9ee8d8193a8c7a8ebdd35eedcadc3ae78e7fc1 (diff)
downloadmariadb-git-bb-10.2-MDEV-23875.tar.gz
MDEV-23875: select into outfile not respect UMASK and UMASK_DIRbb-10.2-MDEV-23875
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.
-rw-r--r--sql/sql_class.cc6
1 files 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)))
{