在我的内核代码中,我需要解析大量类似 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/