redhat8: sctp set socket option 错误 errno 22 (EINVAL Invalid argument)

286 篇文章 34 订阅 ¥69.90 ¥99.00
在Red Hat 8中,尝试设置SCTP套接字事件时遇到错误errno 22 (EINVAL Invalid argument)。问题源于应用程序使用的`sctp_event_subscribe`结构体包含比内核支持的更多元素。解决方案是确保用户空间应用程序与内核头文件`sctp.h`同步,并重新编译。错误还涉及到`arch_prctl`的使用,可能与CET(Control-flow Enforcement Technology)的实现有关。
摘要由CSDN通过智能技术生成

参考

https://github.com/sctp/lksctp-tools
原因: 应用程序使用了新版本的的结构体多了一个元素,导致长度超过了linux kernel的版本长度。
https://github.com/sctp/lksctp-tools/issues/24 ; 相关的问题

问题

设置socket event时出现invalid 错误。
/* API 6.2 setsockopt(), getsockopt()
*

  • Applications use setsockopt() and getsockopt() to set or retrieve
  • socket options. Socket options are used to change the default
  • behavior of sockets calls. They are described in Section 7.
  • The syntax is:
  • ret = getsockopt(int sd, int level, int optname, void __user *optval, int __user *optlen);
  • ret = setsockopt(int sd, int level, int optname, const void __user *optval, int optlen);<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mzhan017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值