越界读取:逐个漏洞

时间:2015-12-02 23:58:28

标签: c++

以下代码被标记为可能的越界读取漏洞。我不明白这是怎么回事,因为变量<script> var data = <?php echo json_encode($data); ?>; </script> 应该包含value地址中的数据。我想知道下面的代码是否以错误的方式将数据写入valuePtr

value

2 个答案:

答案 0 :(得分:0)

正如评论指出的那样,如果清单是空的怎么办?如果列表中只有一个项目怎么办?

另一方面,在大多数现代C ++编译器中,将long转换为double *然后解除引用它是未定义的行为(违反严格的类型别名规则)。作为一个可移植性问题,“长期”&#39;不一定与&#39; double *&#39;相同。

答案 1 :(得分:0)

是的,您的代码可能不正确。

将整数转换为指针是实现定义的,如果指针需要的内存多于long - 例如,sizeof(long)=4, sizeof(double*)=8 - 转换将导致丢弃某些​​信息,并可能导致分段错误

要传递指针,您应该使用正确的指针类型。

我不知道是否会出现越界错误,因为我知道机器人知道GetItemData()的实现。