jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/335967 )

Change subject: Fix crasher from 85b7a988
......................................................................


Fix crasher from 85b7a988

* The affected page won't render properly -- it was broken before
  the template handler refactoring and is still broken now.

Change-Id: Ia395d11486186d1961f12506ab6517f2f6b05812
---
M lib/wt2html/tt/TemplateHandler.js
1 file changed, 10 insertions(+), 1 deletion(-)

Approvals:
  jenkins-bot: Verified
  Arlolra: Looks good to me, approved



diff --git a/lib/wt2html/tt/TemplateHandler.js 
b/lib/wt2html/tt/TemplateHandler.js
index f3e3e7c..ccb832d 100644
--- a/lib/wt2html/tt/TemplateHandler.js
+++ b/lib/wt2html/tt/TemplateHandler.js
@@ -392,6 +392,15 @@
        // even though the target (=lc) matches a registered parser-function 
name.
        if ((magicWordAlias && this.parserFunctions && 
this.parserFunctions['pf_' + magicWordAlias]) ||
                (pieces.length > 1 && (translatedPrefix[0] === '#' || 
wiki.functionHooks.has(translatedPrefix)))) {
+
+               // FIXME: In the scenario where the target itself is
+               // templated / is not a string, protect from crashers by
+               // using the full token -- this is still going to generate
+               // incorrect output, but it won't crash.
+               // Ex: {{<includeonly>safesubst:</includeonly>#invoke:RfD|foo}}
+               var t0Src = typeof targetToks[0] === 'string' ?
+                       targetToks[0].replace(/^[^:]*:?/, '') : targetToks[0];
+
                state.parserFunctionName = translatedPrefix;
                return {
                        isPF: true,
@@ -400,7 +409,7 @@
                        target: 'pf_' + translatedPrefix,
                        pfArg: target.substr(prefix.length + 1),
                        // Extract toks that make up pfArg
-                       pfArgToks: [targetToks[0].replace(/^[^:]*:?/, 
'')].concat(targetToks.slice(1)),
+                       pfArgToks: [t0Src].concat(targetToks.slice(1)),
                };
        }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/335967
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia395d11486186d1961f12506ab6517f2f6b05812
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Subramanya Sastry <ssas...@wikimedia.org>
Gerrit-Reviewer: Arlolra <abrea...@wikimedia.org>
Gerrit-Reviewer: Subramanya Sastry <ssas...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to