[lldb/Reproducers] (De)serialize char* like const char*

The current implementation has a discrepancy between how char pointers
are serialized and deserialized. The latter treats it like a const char*
while the former serializes it as a pointer to a basic type.

Both are potentially wrong, as char pointers are mostly used in
combination with a size, and nothing guarantees that the string's length
(its first null byte to be more precise) is greater or equal to its
size. The real solution is to have a custom (de)serializer that uses
both pieces of infromation.

However, the implementation should be consistent between serialization
and deserialization and I believe treating char* as const char* is the
better alternative.
This commit is contained in:
Jonas Devlieghere 2020-02-05 09:53:10 -08:00
parent 3ec28da6d6
commit 6dccad7517
1 changed files with 2 additions and 0 deletions

View File

@ -621,6 +621,8 @@ private:
}
}
void Serialize(char *t) { Serialize(static_cast<const char *>(t)); }
void Serialize(const char **t) {
size_t size = 0;
if (!t) {