讨厌的Linux内核错误
最近在Linux内核中发现了一个堆溢出错误。该补丁现在可以在大多数主要的Linux发行版中使用。
在这个例子中,Linux内核的 fs/fs_context.c 程序中的 legacy_parse_param 有一个堆溢出错误。在Linux文件系统中,该参数在创建超级块用于挂载和重新配置超级块用于重新挂载期间使用。超级块记录文件系统的所有特征,如文件大小、块大小、空的和已填的存储块。所以,是的,这很重要。
legacy_parse_param () PAGE_SIZE - 2 - size 计算, 错误地将其设置为无符号类型。这意味着较大的“size”值将导致较高的正值,而不是预期的负值。哎呦。
Rust被纳入Linux的一个重要原因是,Rust使得这种内存错误更难发生。每个C开发人员都知道,在C程序中,内存分配很容易出错。
原文链接: https://www.zdnet.com/article/nasty-linux-kernel-bug-found-and-fixed/
自我修改的 Rust 可执行程序
这是一篇由 /r/rust 网站2019年5月的一个问题引发的短文,询问rust程序自我修改的方法。
想象一下,将高分列表直接存储在可执行文件中是多么有趣。当你复制一份程序并传给你的朋友时,你的高分会被保存下来。
这是一篇很有趣的文章, 请把他当做是聚会的小把戏,不要真正的去使用他.
原文链接: https://blog.dend.ro/self-modifying-rust/
QCell: 0.5.0 版本发布
QCell 是 RefCell 和 RwLock 替代品.
QCell 在运行时不会像使用 RefCell 那样会 panic 的 Cell 类型, 相反他会给出编译错误,或者使用 RwLock 交换细粒度锁定,以获得单独的所有者对象的粗粒度锁定。
github地址: https://github.com/uazu/qcell
Doteur: 一个将 SQL schemas 渲染成关系图的工具
Doteur是一个CLI工具,其目的是将SQL模式呈现为好看的图形。这将帮助您轻松地理解大型数据库的结构,并理解项目幕后发生的事情。
github 地址: https://github.com/nag763/doteur
--
社区学习交流平台订阅:
- Rustcc论坛: 支持rss
- 微信公众号:Rust语言中文社区