mirror of
https://github.com/NixOS/nix
synced 2025-07-06 00:51:47 +02:00
Merge pull request #11813 from xokdvium/dev/fix-use-after-free-libstore-tests
fix(libstore-tests): remove use-after-free bug for `StringSource`
This commit is contained in:
commit
2ef5e222df
3 changed files with 16 additions and 22 deletions
|
@ -2,6 +2,7 @@
|
|||
///@file
|
||||
|
||||
#include <memory>
|
||||
#include <type_traits>
|
||||
|
||||
#include "types.hh"
|
||||
#include "util.hh"
|
||||
|
@ -202,7 +203,14 @@ struct StringSource : Source
|
|||
{
|
||||
std::string_view s;
|
||||
size_t pos;
|
||||
|
||||
// NOTE: Prevent unintentional dangling views when an implicit conversion
|
||||
// from std::string -> std::string_view occurs when the string is passed
|
||||
// by rvalue.
|
||||
StringSource(std::string &&) = delete;
|
||||
StringSource(std::string_view s) : s(s), pos(0) { }
|
||||
StringSource(const std::string& str): StringSource(std::string_view(str)) {}
|
||||
|
||||
size_t read(char * data, size_t len) override;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue