Skip to content

Commit 3fd7eab

Browse files
committed
Replace \d in Regex with [0-9].
\d matches non-ASCII digits that int.Parse doesn't support.
1 parent fa85ec6 commit 3fd7eab

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/MySqlConnector/Core/CachedProcedure.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ internal static List<CachedParameter> ParseParameters(string parametersSql)
154154
return new List<CachedParameter>();
155155

156156
// strip precision specifier containing comma
157-
parametersSql = Regex.Replace(parametersSql, @"(DECIMAL|DEC|FIXED|NUMERIC|FLOAT|DOUBLE PRECISION|DOUBLE|REAL)\s*\(\d+(,\s*\d+)\)", @"$1", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
157+
parametersSql = Regex.Replace(parametersSql, @"(DECIMAL|DEC|FIXED|NUMERIC|FLOAT|DOUBLE PRECISION|DOUBLE|REAL)\s*\([0-9]+(,\s*[0-9]+)\)", @"$1", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
158158

159159
// strip enum values containing commas (these would have been stripped by ParseDataType anyway)
160160
parametersSql = Regex.Replace(parametersSql, @"ENUM\s*\([^)]+\)", "ENUM", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
@@ -199,11 +199,11 @@ internal static string ParseDataType(string sql, out bool unsigned, out int leng
199199
sql = Regex.Replace(sql, @"ENUM\s*\([^)]+\)", "ENUM", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
200200

201201
length = 0;
202-
var match = Regex.Match(sql, @"\s*\(\s*(\d+)\s*(?:,\s*\d+\s*)?\)");
202+
var match = Regex.Match(sql, @"\s*\(\s*([0-9]+)\s*(?:,\s*[0-9]+\s*)?\)");
203203
if (match.Success)
204204
{
205205
length = int.Parse(match.Groups[1].Value, CultureInfo.InvariantCulture);
206-
sql = Regex.Replace(sql, @"\s*\(\s*\d+\s*(?:,\s*\d+\s*)?\)", "");
206+
sql = Regex.Replace(sql, @"\s*\(\s*[0-9]+\s*(?:,\s*[0-9]+\s*)?\)", "");
207207
}
208208

209209
var list = sql.Trim().Split(new char[] {' '});

0 commit comments

Comments
 (0)