Skip to content

[release/7.0-staging] [mono] ILStrip sorts custom attribute table - #87933

Merged
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging
Jun 27, 2023
Merged

[release/7.0-staging] [mono] ILStrip sorts custom attribute table#87933
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Jun 22, 2023

Copy link
Copy Markdown
Contributor

Backport of #87923 to release/7.0-staging

/cc @steveisok@jandupej

Customer Impact

When an assembly is trimmed with ILStrip, corruption of the custom attribute table can occur. This can cause searching for type attributes to fail, resulting in (rare) runtime crashes. Such an error has been observed by a customer #85414. The PR restores sorting to assembly's custom attribute table as the last step of ILStrip, resolving the said error.

Testing

Open a trimmed assembly in ILSpy and verify that all expected attributes are in place. The customer-reported example lacked all attributes for System.DateTimeResult in System.Private.CoreLib.dll, while it should have reported IsByRefLikeAttribute, ObsoleteAttribute and CompilerFeatureRequiredAttribute. When fixed ILStrip is used, the expected attributes are present.

Risk

Low. There are no new features. The length of the custom attribute table is not changed, its rows are merely sorted by Parent key.

IMPORTANT: If this backport is for a servicing release, please verify that:

  • The PR target branch is release/X.0-staging, not release/X.0.

  • If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 22, 2023
@jandupejjandupej added area-Build-mono and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 23, 2023
@steveisoksteveisok added the Servicing-consider Issue for next servicing release review label Jun 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

Approved by tactics via email.

@jandupejjandupej added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jun 27, 2023
@akoeplinger

Copy link
Copy Markdown
Member

@jandupej you can merge the PR then since we have the new staging branch setup.

@jandupej
jandupej merged commit d5ad559 into release/7.0-stagingJun 27, 2023
@jandupej
jandupej deleted the backport/pr-87923-to-release/7.0-staging branch June 27, 2023 12:36
@ghostghost locked as resolved and limited conversation to collaborators Jul 27, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Build-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jandupej@akoeplinger@lambdageek@steveisok
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
[release/7.0-staging] [mono] ILStrip sorts custom attribute table by github-actions[bot] · Pull Request #87933 · dotnet/runtime · GitHub
Skip to content

[release/7.0-staging] [mono] ILStrip sorts custom attribute table - #87933

Merged
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging
Jun 27, 2023
Merged

[release/7.0-staging] [mono] ILStrip sorts custom attribute table#87933
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Jun 22, 2023

Copy link
Copy Markdown
Contributor

Backport of #87923 to release/7.0-staging

/cc @steveisok@jandupej

Customer Impact

When an assembly is trimmed with ILStrip, corruption of the custom attribute table can occur. This can cause searching for type attributes to fail, resulting in (rare) runtime crashes. Such an error has been observed by a customer #85414. The PR restores sorting to assembly's custom attribute table as the last step of ILStrip, resolving the said error.

Testing

Open a trimmed assembly in ILSpy and verify that all expected attributes are in place. The customer-reported example lacked all attributes for System.DateTimeResult in System.Private.CoreLib.dll, while it should have reported IsByRefLikeAttribute, ObsoleteAttribute and CompilerFeatureRequiredAttribute. When fixed ILStrip is used, the expected attributes are present.

Risk

Low. There are no new features. The length of the custom attribute table is not changed, its rows are merely sorted by Parent key.

IMPORTANT: If this backport is for a servicing release, please verify that:

  • The PR target branch is release/X.0-staging, not release/X.0.

  • If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 22, 2023
@jandupejjandupej added area-Build-mono and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 23, 2023
@steveisoksteveisok added the Servicing-consider Issue for next servicing release review label Jun 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

Approved by tactics via email.

@jandupejjandupej added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jun 27, 2023
@akoeplinger

Copy link
Copy Markdown
Member

@jandupej you can merge the PR then since we have the new staging branch setup.

@jandupej
jandupej merged commit d5ad559 into release/7.0-stagingJun 27, 2023
@jandupej
jandupej deleted the backport/pr-87923-to-release/7.0-staging branch June 27, 2023 12:36
@ghostghost locked as resolved and limited conversation to collaborators Jul 27, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Build-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jandupej@akoeplinger@lambdageek@steveisok
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [release/7.0-staging] [mono] ILStrip sorts custom attribute table by github-actions[bot] · Pull Request #87933 · dotnet/runtime · GitHub
Skip to content

[release/7.0-staging] [mono] ILStrip sorts custom attribute table - #87933

Merged
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging
Jun 27, 2023
Merged

[release/7.0-staging] [mono] ILStrip sorts custom attribute table#87933
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Jun 22, 2023

Copy link
Copy Markdown
Contributor

Backport of #87923 to release/7.0-staging

/cc @steveisok@jandupej

Customer Impact

When an assembly is trimmed with ILStrip, corruption of the custom attribute table can occur. This can cause searching for type attributes to fail, resulting in (rare) runtime crashes. Such an error has been observed by a customer #85414. The PR restores sorting to assembly's custom attribute table as the last step of ILStrip, resolving the said error.

Testing

Open a trimmed assembly in ILSpy and verify that all expected attributes are in place. The customer-reported example lacked all attributes for System.DateTimeResult in System.Private.CoreLib.dll, while it should have reported IsByRefLikeAttribute, ObsoleteAttribute and CompilerFeatureRequiredAttribute. When fixed ILStrip is used, the expected attributes are present.

Risk

Low. There are no new features. The length of the custom attribute table is not changed, its rows are merely sorted by Parent key.

IMPORTANT: If this backport is for a servicing release, please verify that:

  • The PR target branch is release/X.0-staging, not release/X.0.

  • If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 22, 2023
@jandupejjandupej added area-Build-mono and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 23, 2023
@steveisoksteveisok added the Servicing-consider Issue for next servicing release review label Jun 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

Approved by tactics via email.

@jandupejjandupej added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jun 27, 2023
@akoeplinger

Copy link
Copy Markdown
Member

@jandupej you can merge the PR then since we have the new staging branch setup.

@jandupej
jandupej merged commit d5ad559 into release/7.0-stagingJun 27, 2023
@jandupej
jandupej deleted the backport/pr-87923-to-release/7.0-staging branch June 27, 2023 12:36
@ghostghost locked as resolved and limited conversation to collaborators Jul 27, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Build-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jandupej@akoeplinger@lambdageek@steveisok
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [release/7.0-staging] [mono] ILStrip sorts custom attribute table by github-actions[bot] · Pull Request #87933 · dotnet/runtime · GitHub
Skip to content

[release/7.0-staging] [mono] ILStrip sorts custom attribute table - #87933

Merged
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging
Jun 27, 2023
Merged

[release/7.0-staging] [mono] ILStrip sorts custom attribute table#87933
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Jun 22, 2023

Copy link
Copy Markdown
Contributor

Backport of #87923 to release/7.0-staging

/cc @steveisok@jandupej

Customer Impact

When an assembly is trimmed with ILStrip, corruption of the custom attribute table can occur. This can cause searching for type attributes to fail, resulting in (rare) runtime crashes. Such an error has been observed by a customer #85414. The PR restores sorting to assembly's custom attribute table as the last step of ILStrip, resolving the said error.

Testing

Open a trimmed assembly in ILSpy and verify that all expected attributes are in place. The customer-reported example lacked all attributes for System.DateTimeResult in System.Private.CoreLib.dll, while it should have reported IsByRefLikeAttribute, ObsoleteAttribute and CompilerFeatureRequiredAttribute. When fixed ILStrip is used, the expected attributes are present.

Risk

Low. There are no new features. The length of the custom attribute table is not changed, its rows are merely sorted by Parent key.

IMPORTANT: If this backport is for a servicing release, please verify that:

  • The PR target branch is release/X.0-staging, not release/X.0.

  • If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 22, 2023
@jandupejjandupej added area-Build-mono and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 23, 2023
@steveisoksteveisok added the Servicing-consider Issue for next servicing release review label Jun 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

Approved by tactics via email.

@jandupejjandupej added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jun 27, 2023
@akoeplinger

Copy link
Copy Markdown
Member

@jandupej you can merge the PR then since we have the new staging branch setup.

@jandupej
jandupej merged commit d5ad559 into release/7.0-stagingJun 27, 2023
@jandupej
jandupej deleted the backport/pr-87923-to-release/7.0-staging branch June 27, 2023 12:36
@ghostghost locked as resolved and limited conversation to collaborators Jul 27, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Build-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jandupej@akoeplinger@lambdageek@steveisok
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' [release/7.0-staging] [mono] ILStrip sorts custom attribute table by github-actions[bot] · Pull Request #87933 · dotnet/runtime · GitHub
Skip to content

[release/7.0-staging] [mono] ILStrip sorts custom attribute table - #87933

Merged
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging
Jun 27, 2023
Merged

[release/7.0-staging] [mono] ILStrip sorts custom attribute table#87933
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Jun 22, 2023

Copy link
Copy Markdown
Contributor

Backport of #87923 to release/7.0-staging

/cc @steveisok@jandupej

Customer Impact

When an assembly is trimmed with ILStrip, corruption of the custom attribute table can occur. This can cause searching for type attributes to fail, resulting in (rare) runtime crashes. Such an error has been observed by a customer #85414. The PR restores sorting to assembly's custom attribute table as the last step of ILStrip, resolving the said error.

Testing

Open a trimmed assembly in ILSpy and verify that all expected attributes are in place. The customer-reported example lacked all attributes for System.DateTimeResult in System.Private.CoreLib.dll, while it should have reported IsByRefLikeAttribute, ObsoleteAttribute and CompilerFeatureRequiredAttribute. When fixed ILStrip is used, the expected attributes are present.

Risk

Low. There are no new features. The length of the custom attribute table is not changed, its rows are merely sorted by Parent key.

IMPORTANT: If this backport is for a servicing release, please verify that:

  • The PR target branch is release/X.0-staging, not release/X.0.

  • If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 22, 2023
@jandupejjandupej added area-Build-mono and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 23, 2023
@steveisoksteveisok added the Servicing-consider Issue for next servicing release review label Jun 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

Approved by tactics via email.

@jandupejjandupej added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jun 27, 2023
@akoeplinger

Copy link
Copy Markdown
Member

@jandupej you can merge the PR then since we have the new staging branch setup.

@jandupej
jandupej merged commit d5ad559 into release/7.0-stagingJun 27, 2023
@jandupej
jandupej deleted the backport/pr-87923-to-release/7.0-staging branch June 27, 2023 12:36
@ghostghost locked as resolved and limited conversation to collaborators Jul 27, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Build-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jandupej@akoeplinger@lambdageek@steveisok
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [release/7.0-staging] [mono] ILStrip sorts custom attribute table by github-actions[bot] · Pull Request #87933 · dotnet/runtime · GitHub
Skip to content

[release/7.0-staging] [mono] ILStrip sorts custom attribute table - #87933

Merged
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging
Jun 27, 2023
Merged

[release/7.0-staging] [mono] ILStrip sorts custom attribute table#87933
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Jun 22, 2023

Copy link
Copy Markdown
Contributor

Backport of #87923 to release/7.0-staging

/cc @steveisok@jandupej

Customer Impact

When an assembly is trimmed with ILStrip, corruption of the custom attribute table can occur. This can cause searching for type attributes to fail, resulting in (rare) runtime crashes. Such an error has been observed by a customer #85414. The PR restores sorting to assembly's custom attribute table as the last step of ILStrip, resolving the said error.

Testing

Open a trimmed assembly in ILSpy and verify that all expected attributes are in place. The customer-reported example lacked all attributes for System.DateTimeResult in System.Private.CoreLib.dll, while it should have reported IsByRefLikeAttribute, ObsoleteAttribute and CompilerFeatureRequiredAttribute. When fixed ILStrip is used, the expected attributes are present.

Risk

Low. There are no new features. The length of the custom attribute table is not changed, its rows are merely sorted by Parent key.

IMPORTANT: If this backport is for a servicing release, please verify that:

  • The PR target branch is release/X.0-staging, not release/X.0.

  • If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 22, 2023
@jandupejjandupej added area-Build-mono and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 23, 2023
@steveisoksteveisok added the Servicing-consider Issue for next servicing release review label Jun 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

Approved by tactics via email.

@jandupejjandupej added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jun 27, 2023
@akoeplinger

Copy link
Copy Markdown
Member

@jandupej you can merge the PR then since we have the new staging branch setup.

@jandupej
jandupej merged commit d5ad559 into release/7.0-stagingJun 27, 2023
@jandupej
jandupej deleted the backport/pr-87923-to-release/7.0-staging branch June 27, 2023 12:36
@ghostghost locked as resolved and limited conversation to collaborators Jul 27, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Build-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jandupej@akoeplinger@lambdageek@steveisok
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); [release/7.0-staging] [mono] ILStrip sorts custom attribute table by github-actions[bot] · Pull Request #87933 · dotnet/runtime · GitHub
Skip to content

[release/7.0-staging] [mono] ILStrip sorts custom attribute table - #87933

Merged
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging
Jun 27, 2023
Merged

[release/7.0-staging] [mono] ILStrip sorts custom attribute table#87933
jandupej merged 4 commits into
release/7.0-stagingfrom
backport/pr-87923-to-release/7.0-staging

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Jun 22, 2023

Copy link
Copy Markdown
Contributor

Backport of #87923 to release/7.0-staging

/cc @steveisok@jandupej

Customer Impact

When an assembly is trimmed with ILStrip, corruption of the custom attribute table can occur. This can cause searching for type attributes to fail, resulting in (rare) runtime crashes. Such an error has been observed by a customer #85414. The PR restores sorting to assembly's custom attribute table as the last step of ILStrip, resolving the said error.

Testing

Open a trimmed assembly in ILSpy and verify that all expected attributes are in place. The customer-reported example lacked all attributes for System.DateTimeResult in System.Private.CoreLib.dll, while it should have reported IsByRefLikeAttribute, ObsoleteAttribute and CompilerFeatureRequiredAttribute. When fixed ILStrip is used, the expected attributes are present.

Risk

Low. There are no new features. The length of the custom attribute table is not changed, its rows are merely sorted by Parent key.

IMPORTANT: If this backport is for a servicing release, please verify that:

  • The PR target branch is release/X.0-staging, not release/X.0.

  • If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.

@ghostghost added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jun 22, 2023
@jandupejjandupej added area-Build-mono and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jun 23, 2023
@steveisoksteveisok added the Servicing-consider Issue for next servicing release review label Jun 23, 2023
@jandupej

Copy link
Copy Markdown
Contributor

Approved by tactics via email.

@jandupejjandupej added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jun 27, 2023
@akoeplinger

Copy link
Copy Markdown
Member

@jandupej you can merge the PR then since we have the new staging branch setup.

@jandupej
jandupej merged commit d5ad559 into release/7.0-stagingJun 27, 2023
@jandupej
jandupej deleted the backport/pr-87923-to-release/7.0-staging branch June 27, 2023 12:36
@ghostghost locked as resolved and limited conversation to collaborators Jul 27, 2023
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Build-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jandupej@akoeplinger@lambdageek@steveisok