mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	When installing plugins, there is a missing check for slash (/) in the path on Windows. Note that on Windows, both / and \ can be used to separate directories. This patch fixes the issue by: - Adding a FN_DIRSEP symbol for all platforms consisting of a string of legal directory separators. - Adding a charset-aware version of strcspn(). - Adding a check_valid_path() function that uses my_strcspn() to check if any FN_DIRSEP character is in the supplied string. - Using the check_valid_path() function in sql_plugin.cc and sql_udf.cc (which means replacing the existing test there). include/config-netware.h: Adding FN_DIRSEP ****** Adding FN_DIRSEP include/config-win.h: Adding FN_DIRSEP ****** Adding FN_DIRSEP include/m_ctype.h: Adding my_strspn() and my_strcspn(). ****** Adding my_strspn() and my_strcspn(). include/my_global.h: Adding FN_DIRSEP ****** Adding FN_DIRSEP mysql-test/t/plugin_not_embedded.test: Adding test that file names containing / is disallowed on *all* platforms. ****** Adding test that file names containing / is disallowed on *all* platforms. sql/sql_plugin.cc: Introducing check_if_path() function for checking if filename is a path to include / on Windows. ****** Introducing check_if_path() function for checking if filename is a path to include / on Windows. sql/sql_udf.cc: Switching to use check_if_path() function. ****** Switching to use check_if_path() function. strings/my_strchr.c: Adding my_strspn() and my_strcspn(). ****** Adding my_strspn() and my_strcspn().
		
			
				
	
	
		
			13 lines
		
	
	
		
			474 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			13 lines
		
	
	
		
			474 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #
 | |
| # Bug#51770: UNINSTALL PLUGIN requires no privileges
 | |
| #
 | |
| GRANT INSERT ON mysql.plugin TO bug51770@localhost;
 | |
| INSTALL PLUGIN example SONAME 'ha_example.so';
 | |
| UNINSTALL PLUGIN example;
 | |
| ERROR 42000: DELETE command denied to user 'bug51770'@'localhost' for table 'plugin'
 | |
| GRANT DELETE ON mysql.plugin TO bug51770@localhost;
 | |
| UNINSTALL PLUGIN example;
 | |
| DROP USER bug51770@localhost;
 | |
| INSTALL PLUGIN example SONAME '../ha_example.so';
 | |
| ERROR HY000: No paths allowed for shared library
 |