生锈的bindgen未对齐的tcache块错误

问题描述

我正在为rust中的avahi lib绑定,并且遇到运行时错误

malloc(): unaligned tcache chunk detected    

错误代码

    pub fn register_service(
        &mut self,name: String,svc_type: String,port: u16,txt: &[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,name.as_ptr(),svc_type.as_ptr(),std::ptr::null_mut(),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(())
    }

我正在使用此this example作为参考,并且可以在C语言中使用它,因此我认为错误必定来自绑定。我也不知道这个错误是什么。

我在做什么错了?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...