ошибка фрагмента tcache без привязки к rust bindgen

#rust #avahi #rust-bindgen

#Ржавчина #авахи #rust-привязка #avahi

Вопрос:

Я работаю над привязкой для библиотеки avahi в rust, и я сталкиваюсь с ошибкой во время выполнения:

 malloc(): unaligned tcache chunk detected    
  

ошибка кода:

     pub fn register_service(
        amp;mut self,
        name: String,
        svc_type: String,
        port: u16,
        txt: amp;[String],
    ) -> Result<(), AvahiError> {
        let group = match self.group {
            Some(group) => group,
            None => {
                let group = unsafe {
                    ffi::avahi_entry_group_new(
                        self.client_inner,
                        Some(group_callback),
                        std::ptr::null_mut() as *mut c_void,
                    )
                };
                if group.is_null() {
                    return Err(AvahiError::GroupCreateError);
                }
                self.group.replace(group);
                return self.register_service(name, svc_type, port, txt);
            }
        };

// avahi_entry_group_is_empty or any other function that uses group causes this error
        if unsafe { ffi::avahi_entry_group_is_empty(group) != 0 } {
            let name = CString::new(name).unwrap();
            let svc_type = CString::new(svc_type).unwrap();
            let ret = unsafe {
                ffi::avahi_entry_group_add_service(
                    group,
                    ffi::AVAHI_IF_UNSPEC,
                    ffi::AVAHI_PROTO_UNSPEC,
                    0,
                    name.as_ptr(),
                    svc_type.as_ptr(),
                    std::ptr::null_mut(),
                    std::ptr::null_mut(),
                    port,
                    std::ptr::null_mut() as *mut i8,
                )
            };
            if ret < 0 {
                let msg = unsafe { ffi::avahi_strerror(ret) };
                return Err(AvahiError::CreateService(unsafe {
                    CString::from_raw(msg as *mut i8)
                        .to_str()
                        .unwrap()
                        .to_owned()
                }));
            }
           if unsafe { ffi::avahi_entry_group_commit(group) == 0 } {
              return Err(AvahiError::EntryGroupCommit);
           }
        }

        
        Ok(())
    }
  

Я использую этот этот пример в качестве ссылки, и я заставил его работать на C, поэтому я думаю, что ошибка должна исходить из привязок. Я тоже не уверен, что понимаю, что это за ошибка.

Что я делаю не так?