以下代码被标记为可能的越界读取漏洞。我不明白这是怎么回事,因为变量<script>
var data = <?php echo json_encode($data); ?>;
</script>
应该包含value
地址中的数据。我想知道下面的代码是否以错误的方式将数据写入valuePtr
。
value
答案 0 :(得分:0)
正如评论指出的那样,如果清单是空的怎么办?如果列表中只有一个项目怎么办?
另一方面,在大多数现代C ++编译器中,将long转换为double *然后解除引用它是未定义的行为(违反严格的类型别名规则)。作为一个可移植性问题,“长期”&#39;不一定与&#39; double *&#39;相同。
答案 1 :(得分:0)
是的,您的代码可能不正确。
将整数转换为指针是实现定义的,如果指针需要的内存多于long
- 例如,sizeof(long)=4, sizeof(double*)=8
- 转换将导致丢弃某些信息,并可能导致分段错误
要传递指针,您应该使用正确的指针类型。
我不知道是否会出现越界错误,因为我知道机器人知道GetItemData()
的实现。