From 03f2117d165a7bd5c2476f39c204024939062ab3 Mon Sep 17 00:00:00 2001
From: sbassett <sbassett@wikimedia.org>
Date: Tue, 14 May 2024 14:37:17 -0500
Subject: [PATCH] SECURITY: Improve regular expression performance

* This patch improves the performance of an
  ext:Gadgets regular expression which helps parse
  out sections of the gadgets definition page.

Bug: T363773
---
 includes/MediaWikiGadgetsDefinitionRepo.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/includes/MediaWikiGadgetsDefinitionRepo.php b/includes/MediaWikiGadgetsDefinitionRepo.php
index dc5badc..25b1171 100644
--- a/includes/MediaWikiGadgetsDefinitionRepo.php
+++ b/includes/MediaWikiGadgetsDefinitionRepo.php
@@ -198,7 +198,7 @@ class MediaWikiGadgetsDefinitionRepo extends GadgetRepo {
 
 		foreach ( $lines as $line ) {
 			$m = [];
-			if ( preg_match( '/^==+ *([^*:\s|]+?)\s*==+\s*$/', $line, $m ) ) {
+			if ( preg_match( '/^==+ *([^*:\s|]+)\s*(?<!=)==+\s*$/', $line, $m ) ) {
 				$section = $m[1];
 			} else {
 				$gadget = $this->newFromDefinition( $line, $section );
-- 
2.44.0

