двойное освобождение или повреждение (fasttop)
Код: Выделить всё
Address 0x6c849f0 is 0 bytes inside a block of size 120 alloc'd
at 0x48402AC: operator new(unsigned long) (/builddir/build/BUILD/valgrind-3.26.0-build/valgrind-3.26.0/coregrind/m_replacemalloc/vg_replace_malloc.c:488)
by 0x4862B54: std::__detail::_MakeUniq::__single_object std::make_unique(std::shared_ptr&, std::__cxx11::basic_string const&) (/usr/include/c++/15/bits/unique_ptr.h:1084)
by 0x48607E8: BasexCpp::BasexClient::Query(std::shared_ptr, std::__cxx11::basic_string const&) (/home/bengbers/Thuis/C_CPP_Werkbank/libBasexCpp/src/BasexClient.cpp:114)
by 0x4860785: BasexCpp::BasexClient::Query(std::__cxx11::basic_string const&) (/home/bengbers/Thuis/C_CPP_Werkbank/libBasexCpp/src/BasexClient.cpp:110)
by 0x400F48: main (/home/bengbers/Thuis/C_CPP_Werkbank/libBasexTest/src/libBasexTest.cpp:55)
Это заголовок этого класса. Я не вижу, какой тип здесь не определен должным образом. И после проверки я также не нашел ни одной функции, не имеющей тела.
Код: Выделить всё
#ifndef BASEXSOCKET_H_
#define BASEXSOCKET_H_
#includes ....
#include
namespace BasexCpp {
using namespace std;
typedef std::vector < std::vector < std::byte >> VectOfByteVect;
typedef std::vector < std::byte > ByteVect;
const auto DOUBLE_00 = 0x00;
const auto DOUBLE_FF = 0xff;
class
BasexSocket {
public:
explicit
BasexSocket (const string, const string, const string, const string);
~ BasexSocket ();
BasexSocket (const BasexSocket &) = delete;
BasexSocket & operator= (const BasexSocket &) = delete;
int get_Socket () const;
bool wait ();
int readSocket (string & sockResponseString);
ssize_t writeData (const string & input);
ssize_t writeData (const ByteVect & input);
ssize_t writeData (const char *input);
int writeByte (unsigned char rawNum);
protected:
static ByteVect decode (const ByteVect & encoded);
int Master_sfd;
BasexSocket & CreateSocket (string, string);
BasexSocket & Authenticate (string, string);
};
string md5_basex (const string & content);
int set_nonblock_flag (int desc, int value);
string md5_pwd (string rts, string user, string passwd);
void StringSplit (vector < string > &strings, string input, const char &sep);
}
#endif /* BASEXSOCKET_H_ */
Подробнее здесь: https://stackoverflow.com/questions/798 ... incomplete
Мобильная версия