From d88870e6cc9660c0522abf36b1e338f9f6a9ddf7 Mon Sep 17 00:00:00 2001 From: Kentoku SHIBA Date: Thu, 28 May 2020 19:50:35 +0900 Subject: [PATCH] MENT-805 ODBC login fails with with Spider from bb-10.5-MENT-30 if password contains a semicolon --- storage/spider/spd_table.cc | 22 ++++++++++++++++++++++ storage/spider/spd_table.h | 6 ++++++ 2 files changed, 28 insertions(+) diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc index 91d8f42aa3f..94b1ca543ad 100644 --- a/storage/spider/spd_table.cc +++ b/storage/spider/spd_table.cc @@ -10810,3 +10810,25 @@ void spider_table_remove_share_from_crd_thread( DBUG_VOID_RETURN; } #endif + +uchar *spider_duplicate_char( + uchar *dst, + uchar esc, + uchar *src, + uint src_lgt +) { + uchar *ed = src + src_lgt; + DBUG_ENTER("spider_duplicate_char"); + while (src < ed) + { + *dst = *src; + if (*src == esc) + { + ++dst; + *dst = esc; + } + ++dst; + ++src; + } + DBUG_RETURN(dst); +} diff --git a/storage/spider/spd_table.h b/storage/spider/spd_table.h index c4e3de32372..c03f15a5a88 100644 --- a/storage/spider/spd_table.h +++ b/storage/spider/spd_table.h @@ -738,3 +738,9 @@ void spider_table_remove_share_from_crd_thread( SPIDER_SHARE *share ); #endif +uchar *spider_duplicate_char( + uchar *dst, + uchar esc, + uchar *src, + uint src_lgt +);