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

如何解决生锈的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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?