summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJonghyun Park <parjong@gmail.com>2016-12-06 10:57:52 +0900
committerJan Kotas <jkotas@microsoft.com>2016-12-05 17:57:52 -0800
commit910209a77d3311f845c535023d49b409d90e63ef (patch)
tree4dedd88ff89d26d2ed039a05f6b7ff3f753a0887 /src
parent6c1b9cc682eccae1e655d8037f06c0f516f2f90b (diff)
downloadcoreclr-910209a77d3311f845c535023d49b409d90e63ef.tar.gz
coreclr-910209a77d3311f845c535023d49b409d90e63ef.tar.bz2
coreclr-910209a77d3311f845c535023d49b409d90e63ef.zip
[x86/Linux] Revise COMPlusThrowCallback (#8430)
GetCallerToken and GetImpersonationToken methods in FrameSecurityDescriptorBaseObject are implemented only for Windows-platform.
Diffstat (limited to 'src')
-rw-r--r--src/vm/excep.h4
-rw-r--r--src/vm/i386/excepx86.cpp2
-rw-r--r--src/vm/object.h2
3 files changed, 8 insertions, 0 deletions
diff --git a/src/vm/excep.h b/src/vm/excep.h
index f170a3e6a4..7ef1921593 100644
--- a/src/vm/excep.h
+++ b/src/vm/excep.h
@@ -88,9 +88,11 @@ struct ThrowCallbackType
MethodDesc * pProfilerNotify; // Context for profiler callbacks -- see COMPlusFrameHandler().
BOOL bReplaceStack; // Used to pass info to SaveStackTrace call
BOOL bSkipLastElement;// Used to pass info to SaveStackTrace call
+#ifndef FEATURE_PAL
HANDLE hCallerToken;
HANDLE hImpersonationToken;
BOOL bImpersonationTokenSet;
+#endif // !FEATURE_PAL
#ifdef _DEBUG
void * pCurrentExceptionRecord;
void * pPrevExceptionRecord;
@@ -114,9 +116,11 @@ struct ThrowCallbackType
pProfilerNotify = NULL;
bReplaceStack = FALSE;
bSkipLastElement = FALSE;
+#ifndef FEATURE_PAL
hCallerToken = NULL;
hImpersonationToken = NULL;
bImpersonationTokenSet = FALSE;
+#endif // !FEATURE_PAL
#ifdef _DEBUG
pCurrentExceptionRecord = 0;
diff --git a/src/vm/i386/excepx86.cpp b/src/vm/i386/excepx86.cpp
index 91dffa5c77..025098c3ad 100644
--- a/src/vm/i386/excepx86.cpp
+++ b/src/vm/i386/excepx86.cpp
@@ -2424,6 +2424,7 @@ StackWalkAction COMPlusThrowCallback( // SWA value
pData->bSkipLastElement = FALSE;
}
+#ifndef FEATURE_PAL
// Check for any impersonation on the frame and save that for use during EH filter callbacks
OBJECTREF* pRefSecDesc = pCf->GetAddrOfSecurityObject();
if (pRefSecDesc != NULL && *pRefSecDesc != NULL)
@@ -2442,6 +2443,7 @@ StackWalkAction COMPlusThrowCallback( // SWA value
}
}
}
+#endif // !FEATURE_PAL
// now we've got the stack trace, if we aren't allowed to catch this and we're first pass, return
if (pData->bDontCatch)
diff --git a/src/vm/object.h b/src/vm/object.h
index d3abce28dd..73ecb62b80 100644
--- a/src/vm/object.h
+++ b/src/vm/object.h
@@ -2880,8 +2880,10 @@ class FrameSecurityDescriptorBaseObject : public Object
LIMITED_METHOD_CONTRACT;
m_declSecComputed = !!declSec;
}
+#ifndef FEATURE_PAL
LPVOID GetCallerToken();
LPVOID GetImpersonationToken();
+#endif // FEATURE_PAL
};
#ifdef FEATURE_COMPRESSEDSTACK