Simplify the regex used to match an OCI registry reference and avoid catastrophic backtracking in cases such as: "registry.fedoraproject.org/fedora:"
Signed-off-by: Filip Schauer <[email protected]> --- www/manager6/storage/TemplateView.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/manager6/storage/TemplateView.js b/www/manager6/storage/TemplateView.js index 9f313a0c..71a68b88 100644 --- a/www/manager6/storage/TemplateView.js +++ b/www/manager6/storage/TemplateView.js @@ -218,11 +218,11 @@ Ext.define('PVE.storage.OciRegistryPull', { parseReference: function (value) { const re = - /^((?:(?:[a-zA-Z\d]|[a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d])(?:\.(?:[a-zA-Z\d]|[a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d]))*(?::\d+)?\/)?[a-z\d]+(?:(?:[._]|__|[-]*)[a-z\d]+)*(?:\/[a-z\d]+(?:(?:[._]|__|[-]*)[a-z\d]+)*)*)(:(\w[\w.-]{0,127}))?$/; + /^((?:[a-zA-Z\d](?:[a-zA-Z\d-]*[a-zA-Z\d])?(?:\.(?:[a-zA-Z\d](?:[a-zA-Z\d-]*[a-zA-Z\d])?))*(?::\d+)?\/)?[a-z\d]+(?:(?:[._]|__|-+)[a-z\d]+)*(?:\/[a-z\d]+(?:(?:[._]|__|-+)[a-z\d]+)*)*)(?::(\w[\w.-]{0,127}))?$/; let matches = value.match(re); if (matches) { let ref = matches[1]; - let tag = matches[3]; + let tag = matches[2]; return [ref, tag]; } return undefined; -- 2.47.3 _______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
