Closed
Description
hi, I am currently trying to use this library, But Valgrind detected an invalid read, This makes me very confused,
could you give me some advice?
# This schema is what https://graphql.org/learn/ uses.
# It is extracted from https://github.com/graphql/graphql-js/blob/main/src/__tests__/starWarsSchema.ts.
enum Episode { NEW_HOPE, EMPIRE, JEDI }
interface Character {
id: ID!
name: String
friends: [Character]
appearsIn: [Episode]
}
type Human implements Character {
id: ID!
name: String
friends: [Character]
appearsIn: [Episode]
homePlanet: String
}
type Query {
human(id: ID!): Human
}
#pragma once
#include <atomic>
#include <memory>
#include <stack>
#include "CharacterObject.h"
#include "FantasySchema.h"
#include "HumanObject.h"
#include "QueryObject.h"
namespace graphql::fantasy {
class MyHuman {
public:
MyHuman(std::string&& id, std::optional<std::string>&& name, std::vector<Episode>&& appearsIn,
std::optional<std::string>&& homePlanet) noexcept
: id_{std::move(id)}
, name_{std::move(name)}
, appearsIn_{std::move(appearsIn)}
, homePlanet_{std::move(homePlanet)} {
}
void addFriends(std::string friends) noexcept {
std::cout << "MyHuman::addFriends" << std::endl;
}
const response::IdType& getId() const noexcept {
std::cout << "MyHuman::getId" << std::endl;
return id_;
}
const std::optional<std::string>& getName() const noexcept {
std::cout << "MyHuman::getName" << std::endl;
return name_;
}
std::optional<std::vector<std::shared_ptr<object::Character>>> getFriends() const noexcept {
std::cout << "MyHuman::getFriends" << std::endl;
return std::nullopt;
}
std::optional<std::vector<std::optional<Episode>>> getAppearsIn() const noexcept {
std::cout << "MyHuman::getAppearsIn" << std::endl;
std::vector<std::optional<Episode>> result(appearsIn_.size());
std::transform(appearsIn_.begin(),
appearsIn_.end(),
result.begin(),
[](const auto& entry) noexcept {
return std::make_optional(entry);
});
return result.empty() ? std::nullopt : std::make_optional(std::move(result));
}
const std::optional<std::string>& getHomePlanet() const noexcept {
std::cout << "MyHuman::getHomePlanet" << std::endl;
return homePlanet_;
}
private:
const response::IdType id_;
const std::optional<std::string> name_;
const std::vector<Episode> appearsIn_;
const std::optional<std::string> homePlanet_;
};
struct MockService {
std::shared_ptr<Operations> service{};
};
struct RequestState : service::RequestState {
RequestState(uint32_t id)
: request_id(id) {
}
uint32_t request_id;
};
class Query : public std::enable_shared_from_this<Query> {
public:
service::AwaitableObject<std::shared_ptr<graphql::fantasy::object::Human>> getHuman(response::IdType id) {
std::cout << "1" << std::endl;
//std::cout << std::static_pointer_cast<RequestState>(params.state)->request_id << std::endl;
// auto ptr = std::make_shared<MyHuman>("1000", "lilei", std::vector<Episode>{Episode::NEW_HOPE}, "china");
// co_return std::make_shared<graphql::fantasy::object::Human>(ptr);
co_return nullptr;
}
service::AwaitableObject<std::shared_ptr<graphql::fantasy::object::Human>> getHuman(graphql::service::FieldParams params, response::IdType id) {
std::cout << "2" << std::endl;
co_return nullptr;
}
};
std::unique_ptr<MockService> mock_service() noexcept {
auto result = std::make_unique<MockService>();
auto query = std::make_shared<Query>();
result->service = std::make_shared<Operations>(query);
return result;
}
} // namespace graphql::fantasy
#include <iostream>
#include "graphqlservice/JSONResponse.h"
#include "mock.h"
using namespace std::literals;
int main() {
const auto mock_service = graphql::fantasy::mock_service();
const auto& service = mock_service->service;
std::string cmd{R"({human(id: "1000") {name}})"};
std::cout << "[" << cmd << "]" << std::endl;
try {
graphql::peg::ast ast = graphql::peg::parseString(cmd);
if (!ast.root) {
std::cerr << "Unknown error!" << std::endl;
std::cerr << std::endl;
return 1;
}
graphql::response::Value variables(graphql::response::Type::Map);
auto state = std::make_shared<graphql::fantasy::RequestState>(1000);
const auto worker = std::make_shared<std::suspend_never>();
graphql::service::RequestResolveParams pp{
ast,
""sv,
std::move(variables),
graphql::service::await_async{worker},
state,
};
auto result = service->resolve(pp);
std::cout << graphql::response::toJSON(result.get()) << std::endl;
} catch (const std::runtime_error& ex) {
std::cerr << ex.what() << std::endl;
return 1;
}
return 0;
}
==25784== Memcheck, a memory error detector
==25784== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==25784== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info
==25784== Command: ./main
==25784== Parent PID: 1637
==25784==
==25784== Invalid read of size 2
==25784== at 0x4C320E0: memcpy@@GLIBC_2.14 (vg_replace_strmem.c:1050)
==25784== by 0x421F9C: std::char_traits<char>::copy(char*, char const*, unsigned long) (char_traits.h:409)
==25784== by 0x42952F: std::string::_M_copy(char*, char const*, unsigned long) (basic_string.h:3463)
==25784== by 0x436680: std::string::_S_copy_chars(char*, char const*, char const*) (basic_string.h:3510)
==25784== by 0x430038: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:612)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x44B3DD: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string::__sv_wrapper, std::allocator<char> const&) (basic_string.h:3569)
==25784== by 0x44AC7D: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&, std::allocator<char> const&) (basic_string.h:3759)
==25784== by 0x4A58B4: tao::graphqlpeg::position::position<std::basic_string_view<char, std::char_traits<char> > const&>(tao::graphqlpeg::internal::iterator const&, std::basic_string_view<char, std::char_traits<char> > const&) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x49E710: tao::graphqlpeg::parse_tree::basic_node<graphql::peg::ast_node, std::basic_string_view<char, std::char_traits<char> > >::begin() const (in /home/fantasy/next/graphql-server/build/main)
==25784== Address 0x6070bb8 is 24 bytes inside a block of size 32 free'd
==25784== at 0x4C2DD8B: operator delete(void*, unsigned long) (vg_replace_malloc.c:814)
==25784== by 0x4365D0: __gnu_cxx::new_allocator<char>::deallocate(char*, unsigned long) (new_allocator.h:145)
==25784== by 0x429416: deallocate (allocator.h:211)
==25784== by 0x429416: std::string::_Rep::_M_destroy(std::allocator<char> const&) (basic_string.tcc:880)
==25784== by 0x425A9C: std::string::_Rep::_M_dispose(std::allocator<char> const&) (basic_string.h:3351)
==25784== by 0x423DC1: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (basic_string.h:3766)
==25784== by 0x5C72E1: tao::graphqlpeg::internal::memory_input_base<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input_base() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C72FD: tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C7875: graphql::peg::depth_limit_input<tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string> >::~depth_limit_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A74DB: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784== Block was alloc'd at
==25784== at 0x4C2B788: operator new(unsigned long) (vg_replace_malloc.c:417)
==25784== by 0x4365A6: __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) (new_allocator.h:127)
==25784== by 0x4292CA: allocate (allocator.h:197)
==25784== by 0x4292CA: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (basic_string.tcc:1048)
==25784== by 0x430012: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:610)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x5C607F: std::literals::string_literals::operator"" s(char const*, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A7433: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784==
==25784== Invalid read of size 2
==25784== at 0x4C320EF: memcpy@@GLIBC_2.14 (vg_replace_strmem.c:1050)
==25784== by 0x421F9C: std::char_traits<char>::copy(char*, char const*, unsigned long) (char_traits.h:409)
==25784== by 0x42952F: std::string::_M_copy(char*, char const*, unsigned long) (basic_string.h:3463)
==25784== by 0x436680: std::string::_S_copy_chars(char*, char const*, char const*) (basic_string.h:3510)
==25784== by 0x430038: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:612)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x44B3DD: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string::__sv_wrapper, std::allocator<char> const&) (basic_string.h:3569)
==25784== by 0x44AC7D: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&, std::allocator<char> const&) (basic_string.h:3759)
==25784== by 0x4A58B4: tao::graphqlpeg::position::position<std::basic_string_view<char, std::char_traits<char> > const&>(tao::graphqlpeg::internal::iterator const&, std::basic_string_view<char, std::char_traits<char> > const&) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x49E710: tao::graphqlpeg::parse_tree::basic_node<graphql::peg::ast_node, std::basic_string_view<char, std::char_traits<char> > >::begin() const (in /home/fantasy/next/graphql-server/build/main)
==25784== Address 0x6070bbc is 28 bytes inside a block of size 32 free'd
==25784== at 0x4C2DD8B: operator delete(void*, unsigned long) (vg_replace_malloc.c:814)
==25784== by 0x4365D0: __gnu_cxx::new_allocator<char>::deallocate(char*, unsigned long) (new_allocator.h:145)
==25784== by 0x429416: deallocate (allocator.h:211)
==25784== by 0x429416: std::string::_Rep::_M_destroy(std::allocator<char> const&) (basic_string.tcc:880)
==25784== by 0x425A9C: std::string::_Rep::_M_dispose(std::allocator<char> const&) (basic_string.h:3351)
==25784== by 0x423DC1: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (basic_string.h:3766)
==25784== by 0x5C72E1: tao::graphqlpeg::internal::memory_input_base<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input_base() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C72FD: tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C7875: graphql::peg::depth_limit_input<tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string> >::~depth_limit_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A74DB: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784== Block was alloc'd at
==25784== at 0x4C2B788: operator new(unsigned long) (vg_replace_malloc.c:417)
==25784== by 0x4365A6: __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) (new_allocator.h:127)
==25784== by 0x4292CA: allocate (allocator.h:197)
==25784== by 0x4292CA: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (basic_string.tcc:1048)
==25784== by 0x430012: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:610)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x5C607F: std::literals::string_literals::operator"" s(char const*, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A7433: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784==
==25784== Invalid read of size 1
==25784== at 0x4C322E0: memcpy@@GLIBC_2.14 (vg_replace_strmem.c:1050)
==25784== by 0x421F9C: std::char_traits<char>::copy(char*, char const*, unsigned long) (char_traits.h:409)
==25784== by 0x42952F: std::string::_M_copy(char*, char const*, unsigned long) (basic_string.h:3463)
==25784== by 0x436680: std::string::_S_copy_chars(char*, char const*, char const*) (basic_string.h:3510)
==25784== by 0x430038: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:612)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x44B3DD: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string::__sv_wrapper, std::allocator<char> const&) (basic_string.h:3569)
==25784== by 0x44AC7D: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&, std::allocator<char> const&) (basic_string.h:3759)
==25784== by 0x4A58B4: tao::graphqlpeg::position::position<std::basic_string_view<char, std::char_traits<char> > const&>(tao::graphqlpeg::internal::iterator const&, std::basic_string_view<char, std::char_traits<char> > const&) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x49E710: tao::graphqlpeg::parse_tree::basic_node<graphql::peg::ast_node, std::basic_string_view<char, std::char_traits<char> > >::begin() const (in /home/fantasy/next/graphql-server/build/main)
==25784== Address 0x6070bbe is 30 bytes inside a block of size 32 free'd
==25784== at 0x4C2DD8B: operator delete(void*, unsigned long) (vg_replace_malloc.c:814)
==25784== by 0x4365D0: __gnu_cxx::new_allocator<char>::deallocate(char*, unsigned long) (new_allocator.h:145)
==25784== by 0x429416: deallocate (allocator.h:211)
==25784== by 0x429416: std::string::_Rep::_M_destroy(std::allocator<char> const&) (basic_string.tcc:880)
==25784== by 0x425A9C: std::string::_Rep::_M_dispose(std::allocator<char> const&) (basic_string.h:3351)
==25784== by 0x423DC1: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (basic_string.h:3766)
==25784== by 0x5C72E1: tao::graphqlpeg::internal::memory_input_base<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input_base() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C72FD: tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C7875: graphql::peg::depth_limit_input<tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string> >::~depth_limit_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A74DB: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784== Block was alloc'd at
==25784== at 0x4C2B788: operator new(unsigned long) (vg_replace_malloc.c:417)
==25784== by 0x4365A6: __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) (new_allocator.h:127)
==25784== by 0x4292CA: allocate (allocator.h:197)
==25784== by 0x4292CA: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (basic_string.tcc:1048)
==25784== by 0x430012: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:610)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x5C607F: std::literals::string_literals::operator"" s(char const*, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A7433: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784==
==25784==
==25784== HEAP SUMMARY:
==25784== in use at exit: 8,151 bytes in 215 blocks
==25784== total heap usage: 1,264 allocs, 1,049 frees, 105,252 bytes allocated
==25784==
==25784== LEAK SUMMARY:
==25784== definitely lost: 0 bytes in 0 blocks
==25784== indirectly lost: 0 bytes in 0 blocks
==25784== possibly lost: 0 bytes in 0 blocks
==25784== still reachable: 8,151 bytes in 215 blocks
==25784== suppressed: 0 bytes in 0 blocks
==25784== Reachable blocks (those to which a pointer was found) are not shown.
==25784== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==25784==
==25784== ERROR SUMMARY: 8 errors from 3 contexts (suppressed: 0 from 0)
==25784==
==25784== 2 errors in context 1 of 3:
==25784== Invalid read of size 1
==25784== at 0x4C322E0: memcpy@@GLIBC_2.14 (vg_replace_strmem.c:1050)
==25784== by 0x421F9C: std::char_traits<char>::copy(char*, char const*, unsigned long) (char_traits.h:409)
==25784== by 0x42952F: std::string::_M_copy(char*, char const*, unsigned long) (basic_string.h:3463)
==25784== by 0x436680: std::string::_S_copy_chars(char*, char const*, char const*) (basic_string.h:3510)
==25784== by 0x430038: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:612)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x44B3DD: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string::__sv_wrapper, std::allocator<char> const&) (basic_string.h:3569)
==25784== by 0x44AC7D: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&, std::allocator<char> const&) (basic_string.h:3759)
==25784== by 0x4A58B4: tao::graphqlpeg::position::position<std::basic_string_view<char, std::char_traits<char> > const&>(tao::graphqlpeg::internal::iterator const&, std::basic_string_view<char, std::char_traits<char> > const&) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x49E710: tao::graphqlpeg::parse_tree::basic_node<graphql::peg::ast_node, std::basic_string_view<char, std::char_traits<char> > >::begin() const (in /home/fantasy/next/graphql-server/build/main)
==25784== Address 0x6070bbe is 30 bytes inside a block of size 32 free'd
==25784== at 0x4C2DD8B: operator delete(void*, unsigned long) (vg_replace_malloc.c:814)
==25784== by 0x4365D0: __gnu_cxx::new_allocator<char>::deallocate(char*, unsigned long) (new_allocator.h:145)
==25784== by 0x429416: deallocate (allocator.h:211)
==25784== by 0x429416: std::string::_Rep::_M_destroy(std::allocator<char> const&) (basic_string.tcc:880)
==25784== by 0x425A9C: std::string::_Rep::_M_dispose(std::allocator<char> const&) (basic_string.h:3351)
==25784== by 0x423DC1: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (basic_string.h:3766)
==25784== by 0x5C72E1: tao::graphqlpeg::internal::memory_input_base<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input_base() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C72FD: tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C7875: graphql::peg::depth_limit_input<tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string> >::~depth_limit_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A74DB: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784== Block was alloc'd at
==25784== at 0x4C2B788: operator new(unsigned long) (vg_replace_malloc.c:417)
==25784== by 0x4365A6: __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) (new_allocator.h:127)
==25784== by 0x4292CA: allocate (allocator.h:197)
==25784== by 0x4292CA: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (basic_string.tcc:1048)
==25784== by 0x430012: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:610)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x5C607F: std::literals::string_literals::operator"" s(char const*, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A7433: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784==
==25784==
==25784== 2 errors in context 2 of 3:
==25784== Invalid read of size 2
==25784== at 0x4C320EF: memcpy@@GLIBC_2.14 (vg_replace_strmem.c:1050)
==25784== by 0x421F9C: std::char_traits<char>::copy(char*, char const*, unsigned long) (char_traits.h:409)
==25784== by 0x42952F: std::string::_M_copy(char*, char const*, unsigned long) (basic_string.h:3463)
==25784== by 0x436680: std::string::_S_copy_chars(char*, char const*, char const*) (basic_string.h:3510)
==25784== by 0x430038: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:612)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x44B3DD: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string::__sv_wrapper, std::allocator<char> const&) (basic_string.h:3569)
==25784== by 0x44AC7D: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&, std::allocator<char> const&) (basic_string.h:3759)
==25784== by 0x4A58B4: tao::graphqlpeg::position::position<std::basic_string_view<char, std::char_traits<char> > const&>(tao::graphqlpeg::internal::iterator const&, std::basic_string_view<char, std::char_traits<char> > const&) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x49E710: tao::graphqlpeg::parse_tree::basic_node<graphql::peg::ast_node, std::basic_string_view<char, std::char_traits<char> > >::begin() const (in /home/fantasy/next/graphql-server/build/main)
==25784== Address 0x6070bbc is 28 bytes inside a block of size 32 free'd
==25784== at 0x4C2DD8B: operator delete(void*, unsigned long) (vg_replace_malloc.c:814)
==25784== by 0x4365D0: __gnu_cxx::new_allocator<char>::deallocate(char*, unsigned long) (new_allocator.h:145)
==25784== by 0x429416: deallocate (allocator.h:211)
==25784== by 0x429416: std::string::_Rep::_M_destroy(std::allocator<char> const&) (basic_string.tcc:880)
==25784== by 0x425A9C: std::string::_Rep::_M_dispose(std::allocator<char> const&) (basic_string.h:3351)
==25784== by 0x423DC1: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (basic_string.h:3766)
==25784== by 0x5C72E1: tao::graphqlpeg::internal::memory_input_base<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input_base() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C72FD: tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C7875: graphql::peg::depth_limit_input<tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string> >::~depth_limit_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A74DB: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784== Block was alloc'd at
==25784== at 0x4C2B788: operator new(unsigned long) (vg_replace_malloc.c:417)
==25784== by 0x4365A6: __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) (new_allocator.h:127)
==25784== by 0x4292CA: allocate (allocator.h:197)
==25784== by 0x4292CA: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (basic_string.tcc:1048)
==25784== by 0x430012: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:610)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x5C607F: std::literals::string_literals::operator"" s(char const*, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A7433: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784==
==25784==
==25784== 4 errors in context 3 of 3:
==25784== Invalid read of size 2
==25784== at 0x4C320E0: memcpy@@GLIBC_2.14 (vg_replace_strmem.c:1050)
==25784== by 0x421F9C: std::char_traits<char>::copy(char*, char const*, unsigned long) (char_traits.h:409)
==25784== by 0x42952F: std::string::_M_copy(char*, char const*, unsigned long) (basic_string.h:3463)
==25784== by 0x436680: std::string::_S_copy_chars(char*, char const*, char const*) (basic_string.h:3510)
==25784== by 0x430038: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:612)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x44B3DD: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string::__sv_wrapper, std::allocator<char> const&) (basic_string.h:3569)
==25784== by 0x44AC7D: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&, std::allocator<char> const&) (basic_string.h:3759)
==25784== by 0x4A58B4: tao::graphqlpeg::position::position<std::basic_string_view<char, std::char_traits<char> > const&>(tao::graphqlpeg::internal::iterator const&, std::basic_string_view<char, std::char_traits<char> > const&) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x49E710: tao::graphqlpeg::parse_tree::basic_node<graphql::peg::ast_node, std::basic_string_view<char, std::char_traits<char> > >::begin() const (in /home/fantasy/next/graphql-server/build/main)
==25784== Address 0x6070bb8 is 24 bytes inside a block of size 32 free'd
==25784== at 0x4C2DD8B: operator delete(void*, unsigned long) (vg_replace_malloc.c:814)
==25784== by 0x4365D0: __gnu_cxx::new_allocator<char>::deallocate(char*, unsigned long) (new_allocator.h:145)
==25784== by 0x429416: deallocate (allocator.h:211)
==25784== by 0x429416: std::string::_Rep::_M_destroy(std::allocator<char> const&) (basic_string.tcc:880)
==25784== by 0x425A9C: std::string::_Rep::_M_dispose(std::allocator<char> const&) (basic_string.h:3351)
==25784== by 0x423DC1: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (basic_string.h:3766)
==25784== by 0x5C72E1: tao::graphqlpeg::internal::memory_input_base<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input_base() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C72FD: tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string>::~memory_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5C7875: graphql::peg::depth_limit_input<tao::graphqlpeg::memory_input<(tao::graphqlpeg::tracking_mode)0, tao::graphqlpeg::ascii::eol::lf_crlf, std::string> >::~depth_limit_input() (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A74DB: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784== Block was alloc'd at
==25784== at 0x4C2B788: operator new(unsigned long) (vg_replace_malloc.c:417)
==25784== by 0x4365A6: __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) (new_allocator.h:127)
==25784== by 0x4292CA: allocate (allocator.h:197)
==25784== by 0x4292CA: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (basic_string.tcc:1048)
==25784== by 0x430012: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:610)
==25784== by 0x429467: char* std::string::_S_construct_aux<char const*>(char const*, char const*, std::allocator<char> const&, std::__false_type) (basic_string.h:5178)
==25784== by 0x425B16: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&) (basic_string.h:5199)
==25784== by 0x44AA55: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&) (basic_string.h:3648)
==25784== by 0x5C607F: std::literals::string_literals::operator"" s(char const*, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x5A7433: graphql::peg::parseString(std::basic_string_view<char, std::char_traits<char> >, unsigned long) (in /home/fantasy/next/graphql-server/build/main)
==25784== by 0x45FD83: main (main.cpp:27)
==25784==
==25784== ERROR SUMMARY: 8 errors from 3 contexts (suppressed: 0 from 0)
Metadata
Metadata
Assignees
Labels
No labels