linux - 检查 rtattr 中的长度是否均匀

标签 linux linux-kernel tlv

在我的内核代码中,我需要解析大量类似 TLV 的属性 rtattr。有没有办法验证长度是否正确,即它必须是偶数。有没有宏?

最佳答案

在BER-TLV数据中,L值可以动态改变长度。如果第一个字节的第 8 位为 1,则表示 L 长度参数使用了几个字节。 1-st 的其余部分,用 0x7F 屏蔽的字节,将显示用于长度定义的字节数。

示例 0x820102 将描述:第一个字节的第 8 位设置为 1,长度部分具有动态长度 第一个字节的其余部分为 0x02显示用于长度的字节数。 0x0102 十六进制长度本身等于 258 字节。

关于linux - 检查 rtattr 中的长度是否均匀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38778112/

相关文章:

c - 调度程序时间份额如何随线程数变化?

c++ - 如何查看虚拟内存中每个进程维护的页表 - Linux?

javascript - 适用于 Javascript 的 EMVCo TLV 字符串解析器库

python - 如何使用python在过去六个小时内获取文件夹中的最新文件更新

linux - 在 bash 中使用列

c - 如何从内核模块内的文件描述符获取文件名?

contactless-smartcard - 解析 EMV 9F10 token

ios - 在 TLV8 中准备数据

c - 在 Linux 上自己的进程上读取调试/静态符号,而没有 C/Linux 中的磁盘 I/O?

linux - 以非 root 用户身份运行的系统守护进程的 PID 文件的首选位置