') + ')', '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('^' + ".*" + ', '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" + ', '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('^' + ".*" + ', '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); } })(); })(); [nativeaot] Disable FEATURE_READOLY_GS_COOKIE on macOS by lambdageek · Pull Request #99173 · dotnet/runtime · GitHub
Skip to content

[nativeaot] Disable FEATURE_READOLY_GS_COOKIE on macOS - #99173

Merged
jkotas merged 2 commits into
dotnet:mainfrom
lambdageek:nativeaot-disable-readonly_gs_cookie
Mar 1, 2024
Merged

[nativeaot] Disable FEATURE_READOLY_GS_COOKIE on macOS#99173
jkotas merged 2 commits into
dotnet:mainfrom
lambdageek:nativeaot-disable-readonly_gs_cookie

Conversation

@lambdageek

Copy link
Copy Markdown
Member

It's already disabled on ios, tvos and catalyst.

Fixes#99172

It's already disabled on ios, tvos and catalyst.
Fixesdotnet#99172
@ghost

ghost commented Mar 1, 2024

Copy link
Copy Markdown

Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas
See info in area-owners.md if you want to be subscribed.

Issue Details

It's already disabled on ios, tvos and catalyst.

Fixes #99172

Author:lambdageek
Assignees:-
Labels:

area-NativeAOT-coreclr

Milestone:-

@am11
am11 requested a review from filipnavaraMarch 1, 2024 19:30
Comment threadsrc/coreclr/nativeaot/Runtime/CMakeLists.txt Outdated
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
@filipnavara

filipnavara commented Mar 1, 2024

Copy link
Copy Markdown
Member

This is not going to make things worse, so let’s make the change. That said, are we supposed to mess with the value of __security_cookie as a shared library? I thought it’s per process and this feels weird. I am no expert though, so I would be happy to hear some explanation why is it fine.

@lambdageek

Copy link
Copy Markdown
MemberAuthor

That said, are we supposed to mess with the value of __security_cookie as a shared library? I thought it’s a per process and this feels weird.

In a NativeAOT shared library __security_cookie ends up as a private symbol in __DATA_CONST,__const (the source code says __DATA,__const but OSX ld helpfully moves that segment to __DATA_CONST,__const - see Xcode11 Release Notes). And ILCompiler directly references it from the generated code.

If you have multiple NativeAOT libraries in a process, they each have their own cookie.

@jkotas
jkotas merged commit 33bf01f into dotnet:mainMar 1, 2024
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 1, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[NativeAOT][osx-arm64] Crash when loading shared library as an LLDB plugin

4 participants

@lambdageek@filipnavara@jkoritzinsky@jkotas