fjricci created this revision.
fjricci added reviewers: clayborg, zturner, wallace.
If a section name is exactly 8 characters (the maximum section name length),
and the next item in the section header struct contains a non-zero value,
we would append garbage data to the end of the section name string due to the
lack of null-termination. Ensure that we don't construct the section name
with more than sizeof(sect.name) characters.
https://reviews.llvm.org/D44042
Files:
source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
Index: source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
===================================================================
--- source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
+++ source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
@@ -505,7 +505,10 @@
return false;
}
- sect_name = sect.name;
+
+ // The section name has a max length of 8 characters, but isn't
+ // necessarily null-terminated
+ sect_name = std::string(sect.name, sizeof(sect.name));
return true;
}
Index: source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
===================================================================
--- source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
+++ source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
@@ -505,7 +505,10 @@
return false;
}
- sect_name = sect.name;
+
+ // The section name has a max length of 8 characters, but isn't
+ // necessarily null-terminated
+ sect_name = std::string(sect.name, sizeof(sect.name));
return true;
}
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits