-- 转载自 Rust语言中文社区
讨厌的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/
讨厌的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/