mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Serialization: fix serialization of strings containing a 0-byte
rdar://156433955
This commit is contained in:
@@ -1422,11 +1422,13 @@ StringRef ModuleFileSharedCore::getIdentifierText(IdentifierID IID) const {
|
||||
|
||||
assert(!IdentifierData.empty() && "no identifier data in module");
|
||||
|
||||
StringRef rawStrPtr = IdentifierData.substr(offset);
|
||||
size_t terminatorOffset = rawStrPtr.find('\0');
|
||||
assert(terminatorOffset != StringRef::npos &&
|
||||
size_t endOffset = ((rawID + 1 < Identifiers.size()) ?
|
||||
Identifiers[rawID + 1] : IdentifierData.size()) - 1;
|
||||
|
||||
ASSERT(IdentifierData[endOffset] == '\0' &&
|
||||
"unterminated identifier string data");
|
||||
return rawStrPtr.slice(0, terminatorOffset);
|
||||
|
||||
return IdentifierData.slice(offset, endOffset);
|
||||
}
|
||||
|
||||
ModuleFileSharedCore::ModuleFileSharedCore(
|
||||
|
||||
Reference in New Issue
Block a user