mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-30713 field length handling for CONNECT engine
fp->field_length was unsigned and therefore the negative
condition around it.
Backport of cc182aca93
fixes it, however to correct the
consistent use of types pcf->Length needs to be unsigned
too.
At one point pcf->Precision is assigned from pcf->Length so
that's also unsigned.
GetTypeSize is assigned to length and has a length argument.
A -1 default value seemed dangerious to case, so at least 0
should assert if every hit.
This commit is contained in:
committed by
Andrew Hutchings
parent
3d27f6d7f4
commit
da1c91fb92
@@ -163,9 +163,9 @@ PCSZ GetTypeName(int type)
|
||||
/***********************************************************************/
|
||||
/* GetTypeSize: returns the PlugDB internal type size. */
|
||||
/***********************************************************************/
|
||||
int GetTypeSize(int type, int len)
|
||||
{
|
||||
switch (type) {
|
||||
unsigned GetTypeSize(int type, unsigned len)
|
||||
{
|
||||
switch (type) {
|
||||
case TYPE_DECIM:
|
||||
case TYPE_BIN:
|
||||
case TYPE_STRING: len = len * sizeof(char); break;
|
||||
@@ -176,7 +176,7 @@ int GetTypeSize(int type, int len)
|
||||
case TYPE_DOUBLE: len = sizeof(double); break;
|
||||
case TYPE_TINY: len = sizeof(char); break;
|
||||
case TYPE_PCHAR: len = sizeof(char*); break;
|
||||
default: len = -1;
|
||||
default: len = 0;
|
||||
} // endswitch type
|
||||
|
||||
return len;
|
||||
|
Reference in New Issue
Block a user