From d7662a10af4464bfe3db4b8b01e9254c761e7f5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Fri, 1 Sep 2017 21:49:00 +0300 Subject: [PATCH] MXS-1385: Fix truncation of script variables The replacement of script variables now uses the maximum string length of the original and replacement to make sure there's enough buffer space. --- server/core/externcmd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/core/externcmd.c b/server/core/externcmd.c index 8a4ae5451..874a41570 100644 --- a/server/core/externcmd.c +++ b/server/core/externcmd.c @@ -217,7 +217,9 @@ bool externcmd_substitute_arg(EXTERNCMD* cmd, const char* match, const char* rep { for (int i = 0; cmd->argv[i] && rval; i++) { - size_t size = strlen(cmd->argv[i]); + size_t size_orig = strlen(cmd->argv[i]); + size_t size_replace = strlen(replace); + size_t size = MXS_MAX(size_orig, size_replace); char* dest = MXS_MALLOC(size); if (dest) {