diff --git a/storage/connect/tabmysql.cpp b/storage/connect/tabmysql.cpp index 030f5760601..f6464d30f13 100644 --- a/storage/connect/tabmysql.cpp +++ b/storage/connect/tabmysql.cpp @@ -1232,7 +1232,7 @@ void MYSQLCOL::ReadColumn(PGLOBAL g) if (trace) htrc("MySQL ReadColumn: name=%s buf=%s\n", Name, buf); - Value->SetValue_char(buf, Long); + Value->SetValue_char(buf, min((unsigned)Long, strlen(buf))); } else { if (Nullable) Value->SetNull(true); diff --git a/storage/connect/value.cpp b/storage/connect/value.cpp index 4e8c6a74170..7bd11449892 100644 --- a/storage/connect/value.cpp +++ b/storage/connect/value.cpp @@ -579,12 +579,12 @@ template <> void TYPVAL::SetValue_char(char *p, int n) { if (p) { - char *p2, buf[32]; + char buf[32]; - for (p2 = p + n; p < p2 && *p == ' '; p++) ; + for (; n > 0 && *p == ' '; p++) + n--; - n = min(p2 - p, 31); - memcpy(buf, p, n); + memcpy(buf, p, min(n, 31)); buf[n] = '\0'; Tval = atof(buf);