Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2020-12-16 00:28:05 +0300
committerGitHub <noreply@github.com>2020-12-16 00:28:05 +0300
commit7ae298e4f21a1e7015d0eb085ae7cbae2e9db31c (patch)
treef3b30a6160ec7041f46278883df8e4e61b9f7e0a /src/coreclr/ilasm
parent87ff54bcfb2aae0497c4f088de6b1f7869560257 (diff)
Fix ilasm crash on empty local variable name (#46080)
Fixes #45908
Diffstat (limited to 'src/coreclr/ilasm')
-rw-r--r--src/coreclr/ilasm/portable_pdb.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/coreclr/ilasm/portable_pdb.cpp b/src/coreclr/ilasm/portable_pdb.cpp
index 8da13f2e5d8..c7077d21c42 100644
--- a/src/coreclr/ilasm/portable_pdb.cpp
+++ b/src/coreclr/ilasm/portable_pdb.cpp
@@ -336,13 +336,16 @@ BOOL PortablePdbWriter::_DefineLocalScope(mdMethodDef methodDefToken, Scope* cur
while (pLocalVar != NULL)
{
- mdLocalVariable locVarToken = mdLocalScopeNil;
- USHORT attribute = 0; // TODO: not supported for now
- USHORT index = pLocalVar->dwAttr & 0xffff; // slot
- if (FAILED(m_pdbEmitter->DefineLocalVariable(attribute, index, (char*)pLocalVar->szName, &locVarToken))) goto exit;
+ if (pLocalVar->szName != NULL)
+ {
+ mdLocalVariable locVarToken = mdLocalScopeNil;
+ USHORT attribute = 0; // TODO: not supported for now
+ USHORT index = pLocalVar->dwAttr & 0xffff; // slot
+ if (FAILED(m_pdbEmitter->DefineLocalVariable(attribute, index, (char*)pLocalVar->szName, &locVarToken))) goto exit;
- if (firstLocVarToken == mdLocalScopeNil)
- firstLocVarToken = locVarToken;
+ if (firstLocVarToken == mdLocalScopeNil)
+ firstLocVarToken = locVarToken;
+ }
pLocalVar = pLocalVar->pNext;
}