- Fix length when TYPVAL::SetValue_char is called from MYSQLCOL::ReadColumn.

modified:
  storage/connect/tabmysql.cpp
  storage/connect/value.cpp
This commit is contained in:
Olivier Bertrand 2013-07-26 00:11:48 +02:00
parent 9bd94d7f7e
commit 81e5c5db3b
2 changed files with 5 additions and 5 deletions

View file

@ -1232,7 +1232,7 @@ void MYSQLCOL::ReadColumn(PGLOBAL g)
if (trace) if (trace)
htrc("MySQL ReadColumn: name=%s buf=%s\n", Name, buf); 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 { } else {
if (Nullable) if (Nullable)
Value->SetNull(true); Value->SetNull(true);

View file

@ -579,12 +579,12 @@ template <>
void TYPVAL<double>::SetValue_char(char *p, int n) void TYPVAL<double>::SetValue_char(char *p, int n)
{ {
if (p) { 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, min(n, 31));
memcpy(buf, p, n);
buf[n] = '\0'; buf[n] = '\0';
Tval = atof(buf); Tval = atof(buf);