profiling: Fix cmdline parsing.
Change-Id: Ide0caee6994d0c2892ab934d030622b1146f7c6c
diff --git a/src/profiling/memory/heapprofd_producer.cc b/src/profiling/memory/heapprofd_producer.cc
index 8602abd..33df7d4 100644
--- a/src/profiling/memory/heapprofd_producer.cc
+++ b/src/profiling/memory/heapprofd_producer.cc
@@ -98,9 +98,14 @@
// Strip everything after @ for Java processes.
// Otherwise, strip newline at EOF.
- size_t endpos = process_cmdline.find('@');
- if (endpos == std::string::npos)
- endpos = process_cmdline.size();
+ size_t endpos = process_cmdline.find('\0');
+ if (endpos == std::string::npos) {
+ PERFETTO_DFATAL("No nullbyte in cmdline.");
+ return;
+ }
+ size_t atpos = process_cmdline.find('@');
+ if (atpos != std::string::npos && atpos < endpos)
+ endpos = atpos;
if (endpos < 1)
return;
process_cmdline.resize(endpos);