Made improvements to the server version regexp used by the pymssql
dialect to prevent a regexp overflow in case of an invalid version
string.
Fixes: #5557
Change-Id: Ia3e95a9f11f5a121d84474c97f6b122cf8d9c9cf
--- /dev/null
+.. change::
+ :tags: mssql, change
+ :tickets: 6503, 6253
+
+ Made improvements to the server version regexp used by the pymssql dialect
+ to prevent a regexp overflow in case of an invalid version string.
def _get_server_version_info(self, connection):
vers = connection.exec_driver_sql("select @@version").scalar()
- m = re.match(r"Microsoft .*? - (\d+).(\d+).(\d+).(\d+)", vers)
+ m = re.match(r"Microsoft .*? - (\d+)\.(\d+)\.(\d+)\.(\d+)", vers)
if m:
return tuple(int(x) for x in m.group(1, 2, 3, 4))
else: