Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

Bug: char[]s not escaped

From: Andrew Sayers <andrew-mysqlpp(at)pileofstuff.org>
Date: Sun Jul 01 2007 - 20:55:35 EDT


Tested against 2.2.3, mysqlpp::quote and mysqlpp::escape don't escape text passed as an array of characters:

#include <mysql++.h>
#include <iostream>

using namespace std;
using namespace mysqlpp;

int main() {

	string s1 = "Frank's Brand Hotdog Buns";
	std::cout << quote << s1 << std::endl;
	// Output: 'Frank\'s Brand Hotdog Buns'

	char s2[] = "Frank's Brand Hotdog Buns";
	std::cout << quote << s2 << std::endl;
	// Output: Frank's Brand Hotdog Buns

}

C++ prefers to use the template functions rather than converting a char[] to a char*. Here's a patch:

  • manip-old.h 2007-05-08 00:49:32.000000000 +0100
    +++ manip.h 2007-07-02 01:35:45.000000000 +0100
    @@ -170,6 +170,18 @@ return operator <<(o, const_cast<const char* const&>(in)); }

+inline std::ostream& operator <<(quote_type1 o,
+ char in[])
+{
+ return operator <<(o, const_cast<const char* const&>(in));
+}
+
+inline std::ostream& operator <<(quote_type1 o,
+ const char in[])
+{
+ return operator <<(o, const_cast<const char* const&>(in));
+}
+
 

 template <>
 inline std::ostream& operator <<(quote_type1 o, @@ -540,6 +552,18 @@

Do you need help?X

         return operator <<(o, const_cast<const char* const&>(in));  }  

+inline std::ostream& operator <<(escape_type1 o,
+ char in[])
+{
+ return operator <<(o, const_cast<const char* const&>(in));
+}
+
+inline std::ostream& operator <<(escape_type1 o,
+ const char in[])
+{
+ return operator <<(o, const_cast<const char* const&>(in));
+}
+
 

 /// \enum do_nothing_type0
 /// \anchor do_nothing_manip

-- 
MySQL++ Mailing List
For list archives: 
http://lists.mysql.com/plusplus
To unsubscribe:    
http://lists.mysql.com/plusplus?unsub=lists@pantek.com
Received on Sun Jul 1 20:56:05 2007

This archive was generated by hypermail 2.1.8 : Sun Jul 01 2007 - 21:00:04 EDT


Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library