Commit 2e936807 authored by serg@serg.mylan's avatar serg@serg.mylan

Merge bk-internal:/home/bk/mysql-4.0/

into serg.mylan:/usr/home/serg/Abk/mysql-4.0
parents 510f6623 50d369bb
...@@ -190,7 +190,9 @@ void udf_init() ...@@ -190,7 +190,9 @@ void udf_init()
This is done to ensure that only approved dll from the system This is done to ensure that only approved dll from the system
directories are used (to make this even remotely secure). directories are used (to make this even remotely secure).
*/ */
if (strchr(dl_name, '/') || strlen(name) > NAME_LEN) if (strchr(dl_name, '/') ||
IF_WIN(strchr(dl_name, '\\'),0) ||
strlen(name) > NAME_LEN)
{ {
sql_print_error("Invalid row in mysql.func table for function '%.64s'", sql_print_error("Invalid row in mysql.func table for function '%.64s'",
name); name);
...@@ -219,7 +221,7 @@ void udf_init() ...@@ -219,7 +221,7 @@ void udf_init()
} }
tmp->dlhandle = dl; tmp->dlhandle = dl;
{ {
char buf[MAX_FIELD_NAME+16], *missing; char buf[NAME_LEN+16], *missing;
if ((missing= init_syms(tmp, buf))) if ((missing= init_syms(tmp, buf)))
{ {
sql_print_error(ER(ER_CANT_FIND_DL_ENTRY), missing); sql_print_error(ER(ER_CANT_FIND_DL_ENTRY), missing);
...@@ -403,7 +405,7 @@ int mysql_create_function(THD *thd,udf_func *udf) ...@@ -403,7 +405,7 @@ int mysql_create_function(THD *thd,udf_func *udf)
This is done to ensure that only approved dll from the system This is done to ensure that only approved dll from the system
directories are used (to make this even remotely secure). directories are used (to make this even remotely secure).
*/ */
if (strchr(udf->dl, '/')) if (strchr(udf->dl, '/') || IF_WIN(strchr(dl_name, '\\'),0))
{ {
send_error(&thd->net, ER_UDF_NO_PATHS,ER(ER_UDF_NO_PATHS)); send_error(&thd->net, ER_UDF_NO_PATHS,ER(ER_UDF_NO_PATHS));
DBUG_RETURN(1); DBUG_RETURN(1);
...@@ -433,7 +435,7 @@ int mysql_create_function(THD *thd,udf_func *udf) ...@@ -433,7 +435,7 @@ int mysql_create_function(THD *thd,udf_func *udf)
} }
udf->dlhandle=dl; udf->dlhandle=dl;
{ {
char buf[MAX_FIELD_NAME+16], *missing; char buf[NAME_LEN+16], *missing;
if ((missing= init_syms(udf, buf))) if ((missing= init_syms(udf, buf)))
{ {
net_printf(&thd->net, ER_CANT_FIND_DL_ENTRY, missing); net_printf(&thd->net, ER_CANT_FIND_DL_ENTRY, missing);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment