From 772dda9a634351271d2b76933aff5b8fd066adf7 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Feb 28 2020 11:25:45 +0000 Subject: Escape source name before regex'ing. Otherwise, looking for `/rawhide/srcpkg/gcc-c++` would cause a traceback and return a 500, instead of a 404. Also, only compile regex if we found some packages. --- diff --git a/mdapi/__init__.py b/mdapi/__init__.py index 980c348..31cd48e 100644 --- a/mdapi/__init__.py +++ b/mdapi/__init__.py @@ -91,10 +91,11 @@ async def _get_pkg(branch, name=None, action=None, srcname=None): pkg = [Packages(*item) for item in pkgc] break elif srcname: - pattern = re.compile(f"{srcname}-[0-9]") async with db.execute(GET_PACKAGE_BY_SRC, (srcname+'-%',)) as cursor: pkgc = await cursor.fetchall() if pkgc: + srcname = re.escape(srcname) + pattern = re.compile(f"{srcname}-[0-9]") for pkg_item in pkgc: if pattern.match(pkg_item[3]): pkg = Packages(*pkg_item)