Commit 6dccad75 authored by Jonas Devlieghere's avatar Jonas Devlieghere
Browse files

[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.
parent 3ec28da6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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) {