[Lldb-commits] [PATCH] D42828: Fix for read-past-end-of-array buglet in ProcessElfCore.cpp while reading linux notes

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Feb 2 02:04:30 PST 2018

labath accepted this revision.
labath added a comment.
This revision is now accepted and ready to land.

Looks good, just make sure to not include extra \0 bytes.

Comment at: source/Plugins/Process/elf-core/ProcessElfCore.cpp:668
         return status.ToError();
-      thread_data.name = prpsinfo.pr_fname;
+      thread_data.name.assign (prpsinfo.pr_fname, sizeof (prpsinfo.pr_fname));
In case the name *is* null-terminated, this will forcibly include the \0 bytes into the string, which is not good.
I think this should be something like `assign(pr_fname, strnlen(pr_fname, sizeof(pf_fname))` (maybe there is a more c++-y way of writing that, but I couldn't think of one).

I think adding a check for the thread name in the test still has value (asan will just check we don't do anything stupid, but it won't verify we actually produce the right name in the end), but I can do that as a follow-up.



More information about the lldb-commits mailing list