diff options
Diffstat (limited to 'libmysql/libmysql.c')
-rw-r--r-- | libmysql/libmysql.c | 7 |
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; |