List:MySQL++« Previous MessageNext Message »
From:Michael Hanselmann Date:November 22 2006 11:40pm
Subject:Patch to fix char signedness issue on ppc
View as plain text  
Hello

On Linux/ppc, gcc uses unsigned char's by default. query.cpp constructs
an object of SQLParseElement and gives it a value of -1 for the "char"
parameter (n). Later this value is compared to -1, which will be 255
when using unsigned chars. The result is a wrongly thrown exception. The
attached patch changes the type to "short int" where the number is used.

Signed-off-by: Michael Hanselmann <mysql@stripped>

Greets,
Michael

-- 
Gentoo Linux developer, http://hansmi.ch/, http://forkbomb.ch/

diff -ru mysql++-2.1.1.orig/lib/qparms.h mysql++-2.1.1/lib/qparms.h
--- mysql++-2.1.1.orig/lib/qparms.h	2006-04-05 06:44:49.000000000 +0200
+++ mysql++-2.1.1/lib/qparms.h	2006-11-23 00:11:05.000000000 +0100
@@ -232,7 +232,7 @@
 	/// \param b the 'before' value
 	/// \param o the 'option' value
 	/// \param n the 'num' value
-	SQLParseElement(std::string b, char o, char n) :
+	SQLParseElement(std::string b, char o, short int n) :
 	before(b),
 	option(o),
 	num(n)
@@ -241,7 +241,7 @@
 	
 	std::string before;		///< string inserted before the parameter
 	char option;			///< the parameter option, or blank if none
-	char num;				///< the parameter position to use
+	short int num;			///< the parameter position to use
 };
 
 } // end namespace mysqlpp
diff -ru mysql++-2.1.1.orig/lib/query.cpp mysql++-2.1.1/lib/query.cpp
--- mysql++-2.1.1.orig/lib/query.cpp	2006-04-05 06:44:49.000000000 +0200
+++ mysql++-2.1.1/lib/query.cpp	2006-11-23 00:16:04.000000000 +0100
@@ -220,7 +220,7 @@
 				}
 
 				// Finished parsing parameter; save it.
-				parse_elems_.push_back(SQLParseElement(str, option, char(n)));
+				parse_elems_.push_back(SQLParseElement(str, option, n));
 				str = "";
 				name = "";
 			}
@@ -304,7 +304,7 @@
 {
 	sbuffer_.str("");
 
-	char num;
+	short int num;
 	SQLString* ss;
 	SQLQueryParms* c;
 

Attachment: [application/pgp-signature]
Thread
Patch to fix char signedness issue on ppcMichael Hanselmann23 Nov
  • Re: Patch to fix char signedness issue on ppcOvidiu Bivolaru23 Nov
  • Re: Patch to fix char signedness issue on ppcWarren Young28 Nov
    • Re: Patch to fix char signedness issue on ppcMichael Hanselmann28 Nov
      • Re: Patch to fix char signedness issue on ppcWarren Young20 Dec