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

Reply via email to