summaryrefslogtreecommitdiff
path: root/libmysql/libmysql.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmysql/libmysql.c')
-rw-r--r--libmysql/libmysql.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c
index b8e53cf92bb..ef926e2f93d 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -3611,9 +3611,10 @@ static void fetch_result_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
switch (field_type) {
case MYSQL_TYPE_TINY:
{
- char value= (char) **row;
- longlong data= field_is_unsigned ? (longlong) (unsigned char) value :
- (longlong) value;
+ uchar value= **row;
+ /* sic: we need to cast to 'signed char' as 'char' may be unsigned */
+ longlong data= field_is_unsigned ? (longlong) value :
+ (longlong) (signed char) value;
fetch_long_with_conversion(param, field, data);
*row+= 1;
break;