Page MenuHomePhabricator

Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in Sanitizer.php on line 858
Closed, ResolvedPublic

Description

Note two very similar stack traces when visiting Special:MergeHistories

( ! ) Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/wiki/mediawiki/core/includes/parser/Sanitizer.php on line 858
Call Stack
#	Time	Memory	Function	Location
1	0.0001	365304	{main}( )	.../index.php:0
2	0.0391	4029800	wfIndexMain( )	.../index.php:46
3	0.0391	4029912	MediaWiki->run( )	.../index.php:50
4	0.0391	4029912	MediaWiki->main( )	.../MediaWiki.php:568
5	0.0395	4047208	MediaWiki->performRequest( )	.../MediaWiki.php:911
6	0.0525	4695976	MediaWiki\SpecialPage\SpecialPageFactory->executePath( $path = class Title { private $mTextform = 'MergeHistory'; private $mUrlform = 'MergeHistory'; private $mDbkeyform = 'MergeHistory'; private $mNamespace = -1; private $mInterwiki = ''; private $mLocalInterwiki = FALSE; private $mFragment = ''; public $mArticleID = 0; protected $mLatestID = FALSE; private $mContentModel = FALSE; private $mForcedContentModel = FALSE; private $mEstimateRevisions = NULL; public $prefixedText = NULL; protected $mLength = -1; public $mRedirect = NULL; private $mHasSubpages = NULL; private $mPageLanguage = NULL; private $mDbPageLanguage = FALSE; private $mTitleValue = NULL; private $mIsBigDeletion = NULL; private $mIsValid = TRUE; private $mInstanceCacheKey = NULL; protected $deprecatedPublicProperties = ['mTextform' => [...], 'mUrlform' => [...], 'mDbkeyform' => [...], 'mNamespace' => [...], 'mInterwiki' => [...], 'mFragment' => [...]]; private $dynamicPropertiesAccessDeprecated = FALSE }, $context = class RequestContext { private $request = class WebRequest { protected $data = [...]; protected $queryAndPathParams = [...]; protected $queryParams = [...]; protected $headers = [...]; private $response = class WebResponse { ... }; private $ip = '10.13.37.22'; protected $requestTime = 1659578744.4126; protected $protocol = 'https'; protected $sessionId = class MediaWiki\Session\SessionId { ... }; protected $markedAsSafe = FALSE }; private $title = class Title { private $mTextform = 'MergeHistory'; private $mUrlform = 'MergeHistory'; private $mDbkeyform = 'MergeHistory'; private $mNamespace = -1; private $mInterwiki = ''; private $mLocalInterwiki = FALSE; private $mFragment = ''; public $mArticleID = 0; protected $mLatestID = FALSE; private $mContentModel = FALSE; private $mForcedContentModel = FALSE; private $mEstimateRevisions = NULL; public $prefixedText = 'Special:MergeHistory'; protected $mLength = -1; public $mRedirect = NULL; private $mHasSubpages = NULL; private $mPageLanguage = NULL; private $mDbPageLanguage = FALSE; private $mTitleValue = NULL; private $mIsBigDeletion = NULL; private $mIsValid = NULL; private $mInstanceCacheKey = NULL; protected $deprecatedPublicProperties = [...]; private $dynamicPropertiesAccessDeprecated = FALSE }; private $wikipage = NULL; private $action = NULL; private $output = class OutputPage { private ${ContextSource}context = ...; protected $mMetatags = [...]; protected $mLinktags = [...]; protected $mCanonicalUrl = FALSE; private $mPageTitle = 'Merge page histories'; private $displayTitle = NULL; private $cacheIsFinal = FALSE; public $mBodytext = '<p>This page lets you merge revisions of the history of one source page into a newer page.\nMake sure that this change will maintain historical page continuity.\n</p>'; private $mHTMLtitle = 'Merge page histories - ReedyDevWiki'; private $mIsArticle = FALSE; private $mIsArticleRelated = FALSE; private $mHasCopyright = FALSE; private $mPrintable = FALSE; private $mSections = [...]; private $mSubtitle = [...]; public $mRedirect = ''; protected $mStatusCode = NULL; protected $mLastModified = ''; protected $mCategoryLinks = [...]; protected $mCategories = [...]; protected $mIndicators = [...]; private $mLanguageLinks = [...]; private $mScripts = ''; protected $mInlineStyles = ''; public $mPageLinkTitle = ''; protected $mAdditionalHtmlClasses = [...]; protected $mHeadItems = [...]; protected $mAdditionalBodyClasses = [...]; protected $mModules = [...]; protected $mModuleStyles = [...]; protected $mResourceLoader = NULL; private $rlClient = NULL; private $rlClientContext = NULL; private $rlExemptStyleModules = NULL; protected $mJsConfigVars = [...]; protected $mTemplateIds = [...]; protected $mImageTimeKeys = [...]; public $mRedirectCode = ''; protected $mFeedLinksAppendQuery = NULL; protected $mAllowedModules = [...]; protected $mDoNothing = FALSE; protected $mParserOptions = NULL; private $mFeedLinks = [...]; protected $mEnableClientCache = TRUE; private $mArticleBodyOnly = FALSE; protected $mNewSectionLink = FALSE; protected $mHideNewSectionLink = FALSE; public $mNoGallery = FALSE; protected $mCdnMaxage = 0; protected $mCdnMaxageLimit = INF; protected $mPreventClickjacking = TRUE; private $mRevisionId = NULL; private $mRevisionTimestamp = NULL; protected $mFileVersion = NULL; protected $styles = [...]; private $mIndexPolicy = 'noindex'; private $mFollowPolicy = 'nofollow'; private $mRobotsOptions = [...]; private $mVaryHeader = [...]; private $mRedirectedFrom = NULL; private $mProperties = [...]; private $mTarget = NULL; private $mEnableTOC = FALSE; private $copyrightUrl = NULL; private $limitReportJSData = [...]; private $contentOverrides = [...]; private $contentOverrideCallbacks = [...]; private $mLinkHeader = [...]; private $CSP = class ContentSecurityPolicy { ... } }; private $user = class User { public $mId = 1; public $mName = 'Reedy'; public $mActorId = 1; public $mRealName = 'Sam'; public $mEmail = 'sam@reedyboy.net'; public $mTouched = '20220716173926'; protected $mQuickTouched = NULL; protected $mToken = 'a47668ca62955a1c7c36284542d16f8d'; public $mEmailAuthenticated = '20220708234337'; protected $mEmailToken = '\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'; protected $mEmailTokenExpires = NULL; protected $mRegistration = '20110131194049'; protected $mLoadedItems = TRUE; public $mFrom = 'session'; protected $mDatePreference = NULL; private $mBlockedby = -1; protected $mHash = FALSE; protected $mBlockreason = NULL; protected $mGlobalBlock = NULL; protected $mLocked = NULL; private $mHideName = NULL; private $mRequest = class WebRequest { ... }; private $mBlock = NULL; private $mBlockedFromCreateAccount = FALSE; protected $queryFlagsUsed = 0; private $mThisAsAuthority = class MediaWiki\Permissions\UserAuthority { ... }; private $isTemp = NULL }; private $authority = NULL; private $lang = class Language { public $mCode = 'en-gb'; public $mMagicExtensions = [...]; private $mHtmlCode = NULL; public $dateFormatStrings = [...]; public $mExtendedSpecialPageAliases = [...]; protected $namespaceNames = [...]; protected $mNamespaceIds = NULL; protected $namespaceAliases = NULL; private $transformData = [...]; private $namespaceInfo = class NamespaceInfo { ... }; private $localisationCache = class LocalisationCache { ... }; private $langNameUtils = class MediaWiki\Languages\LanguageNameUtils { ... }; private $langFallback = class MediaWiki\Languages\LanguageFallback { ... }; private $grammarTransformCache = NULL; private $converterFactory = class MediaWiki\Languages\LanguageConverterFactory { ... }; private $hookContainer = class MediaWiki\HookContainer\HookContainer { ... }; private $hookRunner = class MediaWiki\HookContainer\HookRunner { ... }; private $config = class GlobalVarConfig { ... } }; private $skin = class MediaWiki\Skins\Vector\SkinVectorLegacy { private ${ContextSource}context = ...; private ${Skin}defaultLinkOptions = [...]; protected $skinname = 'vector'; protected $options = [...]; protected $mRelevantTitle = NULL; private ${Skin}mRelevantUser = FALSE; private ${Skin}languageLinks = NULL; private ${Skin}sidebar = NULL; private ${Skin}componentRegistry = class MediaWiki\Skin\SkinComponentRegistry { ... }; public $template = NULL; public $thispage = NULL; public $titletxt = NULL; public $userpage = NULL; public $thisquery = NULL; public $loggedin = NULL; public $username = NULL; public $userpageUrlDetails = NULL; private ${SkinTemplate}isTempUser = NULL; private ${SkinTemplate}isNamedUser = NULL; private ${SkinTemplate}templateContextSet = FALSE; private ${SkinTemplate}contentNavigationCached = NULL; private ${SkinMustache}templateParser = NULL; private ${MediaWiki\Skins\Vector\SkinVector}languages = NULL }; private $timing = NULL; private $config = class GlobalVarConfig { private $prefix = 'wg' }; private $languageRecursion = FALSE }, $including = ???, $linkRenderer = ??? )	.../MediaWiki.php:316
7	0.0526	4700072	SpecialPage->run( $subPage = NULL )	.../SpecialPageFactory.php:1423
8	0.0596	4817664	SpecialMergeHistory->execute( $par = NULL )	.../SpecialPage.php:690
9	0.0761	6475160	SpecialMergeHistory->showMergeForm( )	.../SpecialMergeHistory.php:157
10	0.0790	6570448	Xml::input( $name = 'target', $size = 30, $value = NULL, $attribs = ['id' => 'target'] )	.../SpecialMergeHistory.php:208
11	0.0790	6571200	Xml::element( $element = 'input', $attribs = ['name' => 'target', 'size' => 30, 'value' => NULL, 'id' => 'target'], $contents = ???, $allowShortTag = ??? )	.../Xml.php:295
12	0.0790	6571232	Xml::expandAttributes( $attribs = ['name' => 'target', 'size' => 30, 'value' => NULL, 'id' => 'target'] )	.../Xml.php:48
13	0.0790	6571328	Sanitizer::encodeAttribute( $text = NULL )	.../Xml.php:75
14	0.0790	6571328	htmlspecialchars( $string = NULL, $flags = 3 )	.../Sanitizer.php:858

( ! ) Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/wiki/mediawiki/core/includes/parser/Sanitizer.php on line 858
Call Stack
#	Time	Memory	Function	Location
1	0.0001	365304	{main}( )	.../index.php:0
2	0.0391	4029800	wfIndexMain( )	.../index.php:46
3	0.0391	4029912	MediaWiki->run( )	.../index.php:50
4	0.0391	4029912	MediaWiki->main( )	.../MediaWiki.php:568
5	0.0395	4047208	MediaWiki->performRequest( )	.../MediaWiki.php:911
6	0.0525	4695976	MediaWiki\SpecialPage\SpecialPageFactory->executePath( $path = class Title { private $mTextform = 'MergeHistory'; private $mUrlform = 'MergeHistory'; private $mDbkeyform = 'MergeHistory'; private $mNamespace = -1; private $mInterwiki = ''; private $mLocalInterwiki = FALSE; private $mFragment = ''; public $mArticleID = 0; protected $mLatestID = FALSE; private $mContentModel = FALSE; private $mForcedContentModel = FALSE; private $mEstimateRevisions = NULL; public $prefixedText = NULL; protected $mLength = -1; public $mRedirect = NULL; private $mHasSubpages = NULL; private $mPageLanguage = NULL; private $mDbPageLanguage = FALSE; private $mTitleValue = NULL; private $mIsBigDeletion = NULL; private $mIsValid = TRUE; private $mInstanceCacheKey = NULL; protected $deprecatedPublicProperties = ['mTextform' => [...], 'mUrlform' => [...], 'mDbkeyform' => [...], 'mNamespace' => [...], 'mInterwiki' => [...], 'mFragment' => [...]]; private $dynamicPropertiesAccessDeprecated = FALSE }, $context = class RequestContext { private $request = class WebRequest { protected $data = [...]; protected $queryAndPathParams = [...]; protected $queryParams = [...]; protected $headers = [...]; private $response = class WebResponse { ... }; private $ip = '10.13.37.22'; protected $requestTime = 1659578744.4126; protected $protocol = 'https'; protected $sessionId = class MediaWiki\Session\SessionId { ... }; protected $markedAsSafe = FALSE }; private $title = class Title { private $mTextform = 'MergeHistory'; private $mUrlform = 'MergeHistory'; private $mDbkeyform = 'MergeHistory'; private $mNamespace = -1; private $mInterwiki = ''; private $mLocalInterwiki = FALSE; private $mFragment = ''; public $mArticleID = 0; protected $mLatestID = FALSE; private $mContentModel = FALSE; private $mForcedContentModel = FALSE; private $mEstimateRevisions = NULL; public $prefixedText = 'Special:MergeHistory'; protected $mLength = -1; public $mRedirect = NULL; private $mHasSubpages = NULL; private $mPageLanguage = NULL; private $mDbPageLanguage = FALSE; private $mTitleValue = NULL; private $mIsBigDeletion = NULL; private $mIsValid = NULL; private $mInstanceCacheKey = NULL; protected $deprecatedPublicProperties = [...]; private $dynamicPropertiesAccessDeprecated = FALSE }; private $wikipage = NULL; private $action = NULL; private $output = class OutputPage { private ${ContextSource}context = ...; protected $mMetatags = [...]; protected $mLinktags = [...]; protected $mCanonicalUrl = FALSE; private $mPageTitle = 'Merge page histories'; private $displayTitle = NULL; private $cacheIsFinal = FALSE; public $mBodytext = '<p>This page lets you merge revisions of the history of one source page into a newer page.\nMake sure that this change will maintain historical page continuity.\n</p>'; private $mHTMLtitle = 'Merge page histories - ReedyDevWiki'; private $mIsArticle = FALSE; private $mIsArticleRelated = FALSE; private $mHasCopyright = FALSE; private $mPrintable = FALSE; private $mSections = [...]; private $mSubtitle = [...]; public $mRedirect = ''; protected $mStatusCode = NULL; protected $mLastModified = ''; protected $mCategoryLinks = [...]; protected $mCategories = [...]; protected $mIndicators = [...]; private $mLanguageLinks = [...]; private $mScripts = ''; protected $mInlineStyles = ''; public $mPageLinkTitle = ''; protected $mAdditionalHtmlClasses = [...]; protected $mHeadItems = [...]; protected $mAdditionalBodyClasses = [...]; protected $mModules = [...]; protected $mModuleStyles = [...]; protected $mResourceLoader = NULL; private $rlClient = NULL; private $rlClientContext = NULL; private $rlExemptStyleModules = NULL; protected $mJsConfigVars = [...]; protected $mTemplateIds = [...]; protected $mImageTimeKeys = [...]; public $mRedirectCode = ''; protected $mFeedLinksAppendQuery = NULL; protected $mAllowedModules = [...]; protected $mDoNothing = FALSE; protected $mParserOptions = NULL; private $mFeedLinks = [...]; protected $mEnableClientCache = TRUE; private $mArticleBodyOnly = FALSE; protected $mNewSectionLink = FALSE; protected $mHideNewSectionLink = FALSE; public $mNoGallery = FALSE; protected $mCdnMaxage = 0; protected $mCdnMaxageLimit = INF; protected $mPreventClickjacking = TRUE; private $mRevisionId = NULL; private $mRevisionTimestamp = NULL; protected $mFileVersion = NULL; protected $styles = [...]; private $mIndexPolicy = 'noindex'; private $mFollowPolicy = 'nofollow'; private $mRobotsOptions = [...]; private $mVaryHeader = [...]; private $mRedirectedFrom = NULL; private $mProperties = [...]; private $mTarget = NULL; private $mEnableTOC = FALSE; private $copyrightUrl = NULL; private $limitReportJSData = [...]; private $contentOverrides = [...]; private $contentOverrideCallbacks = [...]; private $mLinkHeader = [...]; private $CSP = class ContentSecurityPolicy { ... } }; private $user = class User { public $mId = 1; public $mName = 'Reedy'; public $mActorId = 1; public $mRealName = 'Sam'; public $mEmail = 'sam@reedyboy.net'; public $mTouched = '20220716173926'; protected $mQuickTouched = NULL; protected $mToken = 'a47668ca62955a1c7c36284542d16f8d'; public $mEmailAuthenticated = '20220708234337'; protected $mEmailToken = '\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'; protected $mEmailTokenExpires = NULL; protected $mRegistration = '20110131194049'; protected $mLoadedItems = TRUE; public $mFrom = 'session'; protected $mDatePreference = NULL; private $mBlockedby = -1; protected $mHash = FALSE; protected $mBlockreason = NULL; protected $mGlobalBlock = NULL; protected $mLocked = NULL; private $mHideName = NULL; private $mRequest = class WebRequest { ... }; private $mBlock = NULL; private $mBlockedFromCreateAccount = FALSE; protected $queryFlagsUsed = 0; private $mThisAsAuthority = class MediaWiki\Permissions\UserAuthority { ... }; private $isTemp = NULL }; private $authority = NULL; private $lang = class Language { public $mCode = 'en-gb'; public $mMagicExtensions = [...]; private $mHtmlCode = NULL; public $dateFormatStrings = [...]; public $mExtendedSpecialPageAliases = [...]; protected $namespaceNames = [...]; protected $mNamespaceIds = NULL; protected $namespaceAliases = NULL; private $transformData = [...]; private $namespaceInfo = class NamespaceInfo { ... }; private $localisationCache = class LocalisationCache { ... }; private $langNameUtils = class MediaWiki\Languages\LanguageNameUtils { ... }; private $langFallback = class MediaWiki\Languages\LanguageFallback { ... }; private $grammarTransformCache = NULL; private $converterFactory = class MediaWiki\Languages\LanguageConverterFactory { ... }; private $hookContainer = class MediaWiki\HookContainer\HookContainer { ... }; private $hookRunner = class MediaWiki\HookContainer\HookRunner { ... }; private $config = class GlobalVarConfig { ... } }; private $skin = class MediaWiki\Skins\Vector\SkinVectorLegacy { private ${ContextSource}context = ...; private ${Skin}defaultLinkOptions = [...]; protected $skinname = 'vector'; protected $options = [...]; protected $mRelevantTitle = NULL; private ${Skin}mRelevantUser = FALSE; private ${Skin}languageLinks = NULL; private ${Skin}sidebar = NULL; private ${Skin}componentRegistry = class MediaWiki\Skin\SkinComponentRegistry { ... }; public $template = NULL; public $thispage = NULL; public $titletxt = NULL; public $userpage = NULL; public $thisquery = NULL; public $loggedin = NULL; public $username = NULL; public $userpageUrlDetails = NULL; private ${SkinTemplate}isTempUser = NULL; private ${SkinTemplate}isNamedUser = NULL; private ${SkinTemplate}templateContextSet = FALSE; private ${SkinTemplate}contentNavigationCached = NULL; private ${SkinMustache}templateParser = NULL; private ${MediaWiki\Skins\Vector\SkinVector}languages = NULL }; private $timing = NULL; private $config = class GlobalVarConfig { private $prefix = 'wg' }; private $languageRecursion = FALSE }, $including = ???, $linkRenderer = ??? )	.../MediaWiki.php:316
7	0.0526	4700072	SpecialPage->run( $subPage = NULL )	.../SpecialPageFactory.php:1423
8	0.0596	4817664	SpecialMergeHistory->execute( $par = NULL )	.../SpecialPage.php:690
9	0.0761	6475160	SpecialMergeHistory->showMergeForm( )	.../SpecialMergeHistory.php:157
10	0.0796	6575040	Xml::input( $name = 'dest', $size = 30, $value = NULL, $attribs = ['id' => 'dest'] )	.../SpecialMergeHistory.php:211
11	0.0797	6575792	Xml::element( $element = 'input', $attribs = ['name' => 'dest', 'size' => 30, 'value' => NULL, 'id' => 'dest'], $contents = ???, $allowShortTag = ??? )	.../Xml.php:295
12	0.0797	6575824	Xml::expandAttributes( $attribs = ['name' => 'dest', 'size' => 30, 'value' => NULL, 'id' => 'dest'] )	.../Xml.php:48
13	0.0797	6575912	Sanitizer::encodeAttribute( $text = NULL )	.../Xml.php:75
14	0.0797	6575912	htmlspecialchars( $string = NULL, $flags = 3 )	.../Sanitizer.php:858

Event Timeline

Change 820256 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@master] SpecialMergeHistory: Set defaults for target and dest parameters

https://gerrit.wikimedia.org/r/820256

Change 820256 merged by jenkins-bot:

[mediawiki/core@master] SpecialMergeHistory: Set defaults for target and dest parameters

https://gerrit.wikimedia.org/r/820256

Change 820280 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@REL1_38] SpecialMergeHistory: Set defaults for target and dest parameters

https://gerrit.wikimedia.org/r/820280

Change 820281 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@REL1_37] SpecialMergeHistory: Set defaults for target and dest parameters

https://gerrit.wikimedia.org/r/820281

Change 820282 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@REL1_35] SpecialMergeHistory: Set defaults for target and dest parameters

https://gerrit.wikimedia.org/r/820282

Reedy claimed this task.

Change 820280 merged by jenkins-bot:

[mediawiki/core@REL1_38] SpecialMergeHistory: Set defaults for target and dest parameters

https://gerrit.wikimedia.org/r/820280

Change 820282 merged by jenkins-bot:

[mediawiki/core@REL1_35] SpecialMergeHistory: Set defaults for target and dest parameters

https://gerrit.wikimedia.org/r/820282

Change 820281 merged by jenkins-bot:

[mediawiki/core@REL1_37] SpecialMergeHistory: Set defaults for target and dest parameters

https://gerrit.wikimedia.org/r/820281