我经常检查 lwIP,一个带有 Coverity 的免费 TCP/IP 堆栈。
作为一个网络堆栈,我们有来自网络的不受信任的数据存储在 struct pbuf 中(为清楚起见,省略了一些成员):
struct pbuf {
void *payload;
u16_t len;
u16_t ref;
};
我的问题是:
1)我想建模 struct pbuf 的“void * payload”总是指向受污染的数据,对它的每次访问都必须是不受信任的。我怎样才能做到这一点?
2)我们使用引用计数(u16_t ref)。有没有办法在 Coverity 中对引用计数进行建模?