diff --git a/storage/connect/value.cpp b/storage/connect/value.cpp index 80a694bfc26..422853f7cba 100644 --- a/storage/connect/value.cpp +++ b/storage/connect/value.cpp @@ -1627,6 +1627,12 @@ int TYPVAL::CompareValue(PVAL vp) return (n > 0) ? 1 : (n < 0) ? -1 : 0; } // end of CompareValue +static inline void v_strcpy(char *dest, const char *src) +{ + if (dest != src) + strcpy(dest, src); +} + /***********************************************************************/ /* Compute a function on a string. */ /***********************************************************************/ @@ -1651,11 +1657,11 @@ bool TYPVAL::Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op) break; case OP_MIN: assert(np == 2); - strcpy(Strp, (strcmp(p[0], p[1]) < 0) ? p[0] : p[1]); + v_strcpy(Strp, (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]); + v_strcpy(Strp, (strcmp(p[0], p[1]) > 0) ? p[0] : p[1]); break; default: // sprintf(g->Message, MSG(BAD_EXP_OPER), op);