clayborg added inline comments.

Comment at: source/Plugins/Process/elf-core/ProcessElfCore.cpp:668
         return status.ToError();
- = prpsinfo.pr_fname;
+ (prpsinfo.pr_fname, sizeof (prpsinfo.pr_fname));
labath wrote:
> 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.
This is how we cap segment lengths on ObjectFileMachO:
ConstString const_segname(load_cmd.segname, 
std::min<size_t>(strlen(load_cmd.segname), sizeof(load_cmd.segname)));

This won't keep ASAN happy though as the strlen might go off the end. You might 
be able to check the last byte since I am guessing they will zero fill by 

if (prpsinfo.pr_fname[sizeof (prpsinfo.pr_fname)-1] != '\0') (prpsinfo.pr_fname, sizeof (prpsinfo.pr_fname));
else = prpsinfo.pr_fname;


lldb-commits mailing list

Reply via email to