Date: Wednesday, October 18, 2006 @ 16:23:41
Author: csaba
Path: /cvsroot/carob/libmysequoia
Modified: src/CarobMySQL.cpp (1.85 -> 1.86) src/MySQLAPI.cpp (1.60 ->
1.61) test/TestMySQLAPI.cpp (1.40 -> 1.41)
escape_string fixes for LMS-26
-----------------------+
src/CarobMySQL.cpp | 8 ++++----
src/MySQLAPI.cpp | 6 +++---
test/TestMySQLAPI.cpp | 22 ++++++++++++++++++----
3 files changed, 25 insertions(+), 11 deletions(-)
Index: libmysequoia/src/CarobMySQL.cpp
diff -u libmysequoia/src/CarobMySQL.cpp:1.85
libmysequoia/src/CarobMySQL.cpp:1.86
--- libmysequoia/src/CarobMySQL.cpp:1.85 Tue Oct 10 11:14:27 2006
+++ libmysequoia/src/CarobMySQL.cpp Wed Oct 18 16:23:41 2006
@@ -1259,10 +1259,10 @@
esc = 0;
switch (*i)
{
- case L'\0':
- case L'\n':
- case L'\r':
- case L'\\':
+ case L'\0': esc = L'0'; break;
+ case L'\n': esc = L'n'; break;
+ case L'\r': esc = L'r'; break;
+ case L'\\':
case L'\'':
case L'"': esc = *i; break;
case L'\032': esc = L'Z'; break;
Index: libmysequoia/src/MySQLAPI.cpp
diff -u libmysequoia/src/MySQLAPI.cpp:1.60 libmysequoia/src/MySQLAPI.cpp:1.61
--- libmysequoia/src/MySQLAPI.cpp:1.60 Wed Jul 12 15:07:24 2006
+++ libmysequoia/src/MySQLAPI.cpp Wed Oct 18 16:23:41 2006
@@ -881,9 +881,9 @@
esc = 0;
switch (*from)
{
- case '\0':
- case '\n':
- case '\r':
+ case '\0': esc = '0'; break;
+ case '\n': esc = 'n'; break;
+ case '\r': esc = 'r'; break;
case '\\':
case '\'':
case '"': esc = *from; break;
Index: libmysequoia/test/TestMySQLAPI.cpp
diff -u libmysequoia/test/TestMySQLAPI.cpp:1.40
libmysequoia/test/TestMySQLAPI.cpp:1.41
--- libmysequoia/test/TestMySQLAPI.cpp:1.40 Tue Oct 3 10:29:30 2006
+++ libmysequoia/test/TestMySQLAPI.cpp Wed Oct 18 16:23:41 2006
@@ -452,12 +452,26 @@
void TestMySQLAPI::mysql_escape_string_test(void)
{
- char *from = "select '\\test' from t1";
- char *to = "select \\'\\\\test\\' from t1";
+ char *from1 = "select '\\test' from t1";
+ char *to1 = "select \\'\\\\test\\' from t1";
+ char *from2 = "abc'def\"ghi\0jkl%mno";
+ char *to2 = "abc\\'def\\\"ghi\\0jkl%mno";
char result[100];
+ int i;
- CPPUNIT_ASSERT(mysql_escape_string(result, from, strlen(from)) ==
strlen(to));
- CPPUNIT_ASSERT(strcmp(to, result) == 0);
+ CPPUNIT_ASSERT(mysql_escape_string(result, from1, 22) == 25);
+ CPPUNIT_ASSERT(strcmp(to1, result) == 0);
+
+ CPPUNIT_ASSERT(mysql_real_escape_string(mysql, result, from1, 22) == 25);
+ CPPUNIT_ASSERT(strcmp(to1, result) == 0);
+
+ CPPUNIT_ASSERT(mysql_escape_string(result, from2, 19) == 22);
+ for (i = 0; i < 22; i++)
+ CPPUNIT_ASSERT(to2[i] == result[i]);
+
+ CPPUNIT_ASSERT(mysql_real_escape_string(mysql, result, from2, 19) == 22);
+ for (i = 0; i < 22; i++)
+ CPPUNIT_ASSERT(to2[i] == result[i]);
}
void TestMySQLAPI::mysql_stmt_init_close_test(void)
_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits