Skip to content

Commit

Permalink
- Fix compile error when copying a string on itself.
Browse files Browse the repository at this point in the history
  modified:   storage/connect/value.cpp

- Fix compile error of MDEV-9603
  modified:   storage/connect/tabmysql.cpp
  • Loading branch information
Buggynours committed Mar 19, 2016
1 parent 6689097 commit c1efc4a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
2 changes: 1 addition & 1 deletion storage/connect/tabmysql.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ bool MYSQLDEF::DefineAM(PGLOBAL g, LPCSTR am, int)
Delayed = !!GetIntCatInfo("Delayed", 0);
} else {
// MYSQL access from a PROXY table
Database = GetStringCatInfo(g, "Database", Schema ? Schema : (PSZ)"*");
Database = GetStringCatInfo(g, "Database", Schema ? Schema : PlugDup(g, "*"));
Isview = GetBoolCatInfo("View", false);

// We must get other connection parms from the calling table
Expand Down
29 changes: 14 additions & 15 deletions storage/connect/value.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1344,10 +1344,13 @@ bool TYPVAL<PSZ>::SetValue_pval(PVAL valp, bool chktype)
/***********************************************************************/
bool TYPVAL<PSZ>::SetValue_char(char *p, int n)
{
bool rc;
bool rc = false;

if (p && n > 0) {
rc = n > Len;
if (!p || n == 0) {
Reset();
Null = Nullable;
} else if (p != Strp) {
rc = n > Len;

if ((n = MY_MIN(n, Len))) {
strncpy(Strp, p, n);
Expand All @@ -1366,10 +1369,6 @@ bool TYPVAL<PSZ>::SetValue_char(char *p, int n)
Reset();

Null = false;
} else {
rc = false;
Reset();
Null = Nullable;
} // endif p

return rc;
Expand All @@ -1380,12 +1379,12 @@ bool TYPVAL<PSZ>::SetValue_char(char *p, int n)
/***********************************************************************/
void TYPVAL<PSZ>::SetValue_psz(PSZ s)
{
if (s) {
strncpy(Strp, s, Len);
if (!s) {
Reset();
Null = Nullable;
} else if (s != Strp) {
strncpy(Strp, s, Len);
Null = false;
} else {
Reset();
Null = Nullable;
} // endif s

} // end of SetValue_psz
Expand Down Expand Up @@ -1643,19 +1642,19 @@ bool TYPVAL<PSZ>::Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op)
assert(np == 1 || np == 2);

if (np == 2)
strncpy(Strp, p[0], Len);
SetValue_psz(p[0]);

if ((i = Len - (signed)strlen(Strp)) > 0)
strncat(Strp, p[np - 1], i);

break;
case OP_MIN:
assert(np == 2);
strcpy(Strp, (strcmp(p[0], p[1]) < 0) ? p[0] : p[1]);
SetValue_psz((strcmp(p[0], p[1]) < 0) ? p[0] : p[1]);
break;
case OP_MAX:
assert(np == 2);
strcpy(Strp, (strcmp(p[0], p[1]) > 0) ? p[0] : p[1]);
SetValue_psz((strcmp(p[0], p[1]) > 0) ? p[0] : p[1]);
break;
default:
// sprintf(g->Message, MSG(BAD_EXP_OPER), op);
Expand Down

0 comments on commit c1efc4a

Please sign in to comment.