diff options
author | Jan Kotas <jkotas@microsoft.com> | 2020-12-16 00:28:05 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-16 00:28:05 +0300 |
commit | 7ae298e4f21a1e7015d0eb085ae7cbae2e9db31c (patch) | |
tree | f3b30a6160ec7041f46278883df8e4e61b9f7e0a /src/coreclr/ilasm | |
parent | 87ff54bcfb2aae0497c4f088de6b1f7869560257 (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.cpp | 15 |
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; } |