wallet: fix buffer over-read in SQLite file magic check
If there is no terminating zero within the 16 magic bytes, the buffer would be over-read in the std::string constructor. Fixed by using the "from buffer" variant of the ctor (that also takes a size) rather than the "from c-string" variant.
This commit is contained in:
parent
dda18e7310
commit
56a461f727
1 changed files with 2 additions and 2 deletions
|
@ -619,8 +619,8 @@ bool IsSQLiteFile(const fs::path& path)
|
||||||
file.close();
|
file.close();
|
||||||
|
|
||||||
// Check the magic, see https://sqlite.org/fileformat2.html
|
// Check the magic, see https://sqlite.org/fileformat2.html
|
||||||
std::string magic_str(magic);
|
std::string magic_str(magic, 16);
|
||||||
if (magic_str != std::string("SQLite format 3")) {
|
if (magic_str != std::string("SQLite format 3", 16)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue