本文讨论了2019年在Solidity编译器中发现的一个内存管理漏洞,导致动态数组的长度计算溢出,并可能导致内存损坏。文章深入分析了该漏洞的原理、示例代码及其潜在影响,还探讨了如何避免及检测此类漏洞的方法。最后,作者提到应用形式化方法来提高编译器的正确性和区块链智能合约的安全性。
本文详细探讨了Solana程序中的内存管理,特别是如何避免堆栈溢出的问题。通过对堆栈、堆和账户空间的基本概念进行讲解,提供了多种优化解决方案,包括将代码分割成函数、使用Box以转移内存到堆中,以及自定义堆分配器以合理利用内存。
本文介绍了Yul语言的基础知识,Yul是一种用于在智能合约中编写汇编语言的中间编程语言。文章通过示例讲解了Yul的变量赋值、操作、循环、条件语句、存储和内存管理,以及如何执行合约调用。