tags 590285 + patch thanks
Hello, Hereby fix for the mysql and pgsql backend. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=590285#10 is the way how sqlite works and seems to me to be ok. Code for pgsql is mostly copied from the mysql-code only differs in function name to postgres specific, I assume it will work correct, but I didn't test it. Regards, Jaco Möhlmann
100,106c100,103 < string a; < < for(string::const_iterator i=name.begin();i!=name.end();++i) { < if(*i=='\'' || *i=='\\') < a+='\\'; < a+=*i; < } --- > char *encoded_data = new char[(name.length() * 2) + 1]; // maximum possible > data needed to escape > long encoded_len = mysql_real_escape_string(&d_db, encoded_data, > name.c_str(), name.length()); > string a(encoded_data, encoded_len); > delete []encoded_data;
143,148c143,147 < string a; < < for(string::const_iterator i=name.begin();i!=name.end();++i) { < if(*i=='\'' || *i=='\\') < a+='\\'; < a+=*i; --- > char *encoded_data = new char[(name.length() * 2) + 1]; // maximum possible > data needed to escape > int error; > long encoded_len = PQescapeStringConn(d_db, encoded_data, name.c_str(), > name.length(), &error); > if (error != 0) { > // escaping data failure, what to do. encoded_data contains data, but it > can be invalid for the database. 149a149,150 > string a(encoded_data, encoded_len); > delete []encoded_data;