在C ++中缓冲区访问之前避免缓冲区长度检查

时间:2015-06-04 03:56:18

标签: c++

我有一个char*缓冲区,我们需要将其解码为db。缓冲区是这样的,如果不是null,它非常大并且包含整数和字符串。

缓冲区将包含4字节整数长度的内容,后跟多字符长的ASCII字符串。然后是另一个4字节长度和一个长度的字符串,依此类推,直到我们到达终点。

大多数情况下缓冲区有效,但有时我看到缓冲区已损坏,我得到了一个SEGV。我得到一个SEGV,因为长度导致读取的字节多于缓冲区长度的其余部分。

想要在解码之前将检查放在任何地方以获得剩余的缓冲区长度。缓冲区字段数量为200。我可以在这里提供什么检查,可以帮助我解决这个问题而不需要额外if检查的开销?

0 个答案:

没有答案