Author: Jonas Devlieghere Date: 2020-01-29T16:32:48-08:00 New Revision: 446e4e4cf6d1126b4dc2fe816d4bb01b184b2e64
URL: https://github.com/llvm/llvm-project/commit/446e4e4cf6d1126b4dc2fe816d4bb01b184b2e64 DIFF: https://github.com/llvm/llvm-project/commit/446e4e4cf6d1126b4dc2fe816d4bb01b184b2e64.diff LOG: [lldb/Reproducers] Account for char** being a nullptr Added: Modified: lldb/include/lldb/Utility/ReproducerInstrumentation.h lldb/source/Utility/ReproducerInstrumentation.cpp Removed: ################################################################################ diff --git a/lldb/include/lldb/Utility/ReproducerInstrumentation.h b/lldb/include/lldb/Utility/ReproducerInstrumentation.h index ca92f9f2f6e6..9dbe8dc547f5 100644 --- a/lldb/include/lldb/Utility/ReproducerInstrumentation.h +++ b/lldb/include/lldb/Utility/ReproducerInstrumentation.h @@ -606,9 +606,14 @@ class Serializer { } void Serialize(const char **t) { + size_t size = 0; + if (!t) { + Serialize(size); + return; + } + // Compute the size of the array. const char *const *temp = t; - size_t size = 0; while (*temp++) size++; Serialize(size); diff --git a/lldb/source/Utility/ReproducerInstrumentation.cpp b/lldb/source/Utility/ReproducerInstrumentation.cpp index fb39fec41d43..4109f73bfef3 100644 --- a/lldb/source/Utility/ReproducerInstrumentation.cpp +++ b/lldb/source/Utility/ReproducerInstrumentation.cpp @@ -42,6 +42,8 @@ template <> const char *Deserializer::Deserialize<const char *>() { template <> const char **Deserializer::Deserialize<const char **>() { size_t size = Deserialize<size_t>(); + if (size == 0) + return nullptr; const char **r = reinterpret_cast<const char **>(calloc(size + 1, sizeof(char *))); for (size_t i = 0; i < size; ++i) _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits