Вызов malloc
возвращает указатель на блок памяти, который перекрывает память, уже выделенную make_shared
, Я создаю клиент FUSE, и вызов malloc находится в библиотеке FUSE, но я не уверен, что это актуально. Я не смог воспроизвести ошибку вне моей программы, и я понятия не имею, что делать дальше. Valgrind не находит ошибок до тех пор, пока указатель на объект, управляемый shared_ptr
поврежден, а затем используется.
Эта ошибка была результатом создания shared_ptr
с new
затем введите его в weak_ptr
и удалив его. Я должен типизировать его, потому что я использую библиотеку C (FUSE) и передаю указатель на weak_ptr
и это обеспечивает uint64_t
хранить ручку. Затем библиотека вызывает мои функции и передает им структуру, содержащую указатель типа в виде uint64_t
,
Других решений пока нет …