summaryrefslogtreecommitdiff
path: root/storage/connect/myconn.cpp
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2022-01-27 08:45:36 +0100
committerOleksandr Byelkin <sanja@mariadb.com>2022-01-27 08:45:36 +0100
commit9b4a179d69a1c795bef303a88f9d3195669f00ec (patch)
tree87811d81af231e2945468ead0cba58cfc5514548 /storage/connect/myconn.cpp
parent020dc54dabe64f238e8ef4f50a630a22e0f06949 (diff)
parent7db489fc7dea2b4c236807035e57f169074c6682 (diff)
downloadmariadb-git-10.3-merge.tar.gz
Merge branch '10.2' into bb-10.3-release10.3-merge
Diffstat (limited to 'storage/connect/myconn.cpp')
-rw-r--r--storage/connect/myconn.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/storage/connect/myconn.cpp b/storage/connect/myconn.cpp
index 945c4e698be..438f0ff2b9a 100644
--- a/storage/connect/myconn.cpp
+++ b/storage/connect/myconn.cpp
@@ -399,15 +399,19 @@ PQRYRES SrcColumns(PGLOBAL g, const char *host, const char *db,
int w;
MYSQLC myc;
PQRYRES qrp = NULL;
+ const char *p;
if (!port)
port = mysqld_port;
if (!strnicmp(srcdef, "select ", 7) || strstr(srcdef, "%s")) {
- query = (char *)PlugSubAlloc(g, NULL, strlen(srcdef) + 10);
+ query = (char *)PlugSubAlloc(g, NULL, strlen(srcdef) + 10);
- if (strstr(srcdef, "%s"))
- sprintf(query, srcdef, "1=1"); // dummy where clause
+ if ((p= strstr(srcdef, "%s")))
+ {
+ /* Replace %s with 1=1 */
+ sprintf(query, "%.*s1=1%s", (int) (p - srcdef), srcdef, p + 2); // dummy where clause
+ }
else
strcpy(query, srcdef);