linux的内核有多小,Linux 内核有小bug?

今天读着读着Linux代码,竟然无意中发现Linux 0.11内核有个小bug,呵呵,人非圣贤孰能无过。

// 在目录项数据块中搜索匹配指定文件名的目录项,首先让de 指向数据块,并在不超过目录中目录项数

// 的条件下,循环执行搜索。

i = 0;

de = (struct dir_entry *) bh->b_data;

while (i < entries)

...{

// 如果当前目录项数据块已经搜索完,还没有找到匹配的目录项,则释放当前目录项数据块。

if ((char *)de >= BLOCK_SIZE+bh->b_data)

...{

brelse(bh);

bh = NULL;

// 在读入下一目录项数据块。若这块为空,则只要还没有搜索完目录中的所有目录项,就跳过该块,

// 继续读下一目录项数据块。若该块不空,就让de 指向该目录项数据块,继续搜索。

if (!(block = bmap(*dir,i/DIR_ENTRIES_PER_BLOCK)) || !(bh = bread((*dir)->i_dev,block)))

...{

i += DIR_ENTRIES_PER_BLOCK;

continue;

}

de = (struct dir_entry *) bh->b_data;

}

// 如果找到匹配的目录项的话,则返回该目录项结构指针和该目录项数据块指针,退出。

if (match(namelen,name,de))

...{

*res_dir = de;

return bh;

}

// 否则继续在目录项数据块中比较下一个目录项。

de++;

i++;

}

其中 if (!(block = bmap(*dir,i/DIR_ENTRIES_PER_BLOCK)) || !(bh = bread((*dir)->i_dev,block))) 如果bh读取失败,将跳出本次循环,然而在下次循环时又会引用bh这个结构指针,因为上次调用是失败的,所以可能出现内存无效引用,导致出现错误。不过听赵博说这个错误其实 "很少发生或者几乎不会发生",所以一直到Linux 1.00版这个bug才修正!0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

菜单窗口_菜单

菜单窗口The Hamburger Menu widget is on every other site nowadays. It has become synonymous with the web and, perhaps even more so, with web development. Have, for instance, a look at Dribbble or Codepen. There you’ll find a fair share of examples. They c…

帝国cms 打开打开转换表文件失败!

帝国cms 升级到最新版6.6 后 生成列表页面和 搜索 时出现 “打开打开转换表文件失败&#xff01;” 跟踪文件找到 include($file); 这行代码时出错非常纳闷&#xff0c;这个是php的内部命令啊&#xff0c;跟帝国的编码应该没有关系一直没有再往下细找&#xff0c;只好根据错误提…

怎么在PDF上修改文字,PDF修改文字的步骤

怎么在PDF文件上修改文字呢&#xff1f;其实现在的很多的PDF文件上会出现文字错误的情况&#xff0c;想要修改PDF文件上面的文字却不知道怎么修改&#xff0c;想要修改PDF文件还是比较简单的&#xff0c;使用专业的PDF编辑器就可以进行操作了&#xff0c;下面小编就为大家分享一…

linux raw限制端口访出,使用Linux raw socket时需要注意的一些问题

本文的copyleft归gfree.windgmail.com所有&#xff0c;使用GPL发布&#xff0c;可以自由拷贝&#xff0c;转载。但转载请保持文档的完整性&#xff0c;注明原作者及原链接&#xff0c;严禁用于任何商业用途。作者&#xff1a;gfree.windgmail.com博客&#xff1a;linuxfocus.bl…

读完 Vue 发布源码,小姐姐回答了 leader 的提问,并优化了项目发布流程~

大家好&#xff0c;我是若川。这是 源码共读 第三期活动&#xff0c;纪年小姐姐的第三次投稿。纪年小姐姐学习完优化了自己的项目发布流程&#xff0c;而且回答了leader对她的提问&#xff0c;来看看她的思考和实践。第三期是 Vue 3.2 发布了&#xff0c;那尤雨溪是怎么发布 Vu…

小程序背景图片的坑

本人是前端菜鸟一个&#xff0c;比小白还要白&#xff0c;这完全是自己的经验总结&#xff0c;并不是要给各位分享什么宝贵经验哈&#xff0c;各位大佬不喜勿喷&#xff0c;不然会打击到我的哈哈因为公司要求做几个小程序的页面&#xff0c;我不得不拾起丢弃了几个月的小程序开…

SimpleAdapter类使用方法

SimpleAdapter的构造函数是&#xff1a; public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) 官方说明了其各个参数含义&#xff0c;我这里根据自己的理解解释下&#xff1a; 第一个context&…

小程序 富文本自适应屏幕_自适应文本:跨屏幕尺寸构建可读文本

小程序 富文本自适应屏幕Many of you may already know about responsive web design. Cited from Wikipedia, responsive web design (RWD) is an approach to web design that makes web pages render well on a variety of devices and windows or screen sizes. The respon…

Vue、React 之间如何实现代码移植?

大家好&#xff0c;我是若川。面对前端最火的两个框架&#xff0c;学 React 还是 Vue &#xff1f;这可能是每个前端人都曾纠结过的问题。不过&#xff0c;现在你不用纠结了——因为很多公司都是两个框架都有大量的应用&#xff0c;取决于不同团队的技术选型&#xff0c;特别是…

linux mariadb 乱码,配置mariadb远程访问权限,解决数据库乱码问题

配置mariadb远程访问权限&#xff1a;1)登录数据库:# mysql -uroot -p2)配置授权数据库用户远程访问权限&#xff0c;%表示所有远程IP&#xff0c;也可以指定IP。WITH GRANT OPTION表示mysql数据库的grant表中重新加载权限数据&#xff1a;GRANT ALL PRIVILEGES ON *.* TO 用户…

平面设计师和ui设计师_游戏设计师的平面设计

平面设计师和ui设计师Design is a very ancient practice, but graphic design really found its core principles post World War One. Games are also very ancient but video games are still finding their feet. I think graphic design has a few things to teach people…

从零开发一个命令行脚手架工具 等

大家好&#xff0c;我是若川。今天周末&#xff0c;话不多说&#xff0c;这一次花了几小时精心为大家挑选了20余篇好文&#xff0c;供大家阅读学习。本文阅读技巧&#xff0c;先粗看标题&#xff0c;感兴趣可以都关注一波&#xff0c;绝对不亏。前端宇宙小编就职于某大厂&#…

linux的HAL库函数,STM32 HAL库 IIC 协议库函数

/* 第1个参数为I2C操作句柄第2个参数为从机设备地址第3个参数为从机寄存器地址第4个参数为从机寄存器地址长度第5个参数为发送的数据的起始地址第6个参数为传输数据的大小第7个参数为操作超时时间 */HAL_I2C_Mem_Write(&hi2c2,salve_add,0,0,PA_BUFF,sizeof(PA_BUFF),0x10)…

pku acm 2140 Herd Sums http://acm.pku.edu.cn/JudgeOnline/problem?id=2140

2140代码短小精悍&#xff1a;#include<stdio.h> int main() { int cnt0,i; long s; scanf("%ld",&s); for(i1;(i1)*i/2<s;i)if((s-(i-1)*i/2)%i0)cnt; printf("%d\n",cnt); return 0; }转载于:https://www.cnblogs.com/Chinese-Coder-C…

java合成海报的工具类

2019独角兽企业重金招聘Python工程师标准>>> package io.renren.common.utils;import cn.hutool.core.lang.Console; import io.renren.modules.oss.cloud.OSSFactory;import javax.imageio.ImageIO; import javax.imageio.stream.ImageOutputStream; import java.a…

a说b说谎b说c说谎说d说_说谎的眼睛及其同伙

a说b说谎b说c说谎说d说The eye is a complex and temperamental organ. By the end of this article, designers will have a better understanding of how the eye works with the brain, how it deconstructs images that the brain stitches back up again, and how the two…

一名运营,自学一年前端,成功入职杭州某独角兽企业,他的面试经验和学习方法等分享...

大家好&#xff0c;我是若川。这是我的微信群里小伙伴年年 的投稿。他是19年毕业&#xff0c;之前做的是运营相关的工作&#xff0c;在我的交流群里非常活跃&#xff0c;自学一年前端&#xff0c;目前成功转行入职杭州一家独角兽企业。相信他的文章能带给大家一些启发和激励。0…

linux下svn relocate,如何进行svn relocate 操作

1。进入工作复本&#xff03;> cd ~/test2。查看仓库地址(URL)&#xff03;> svn info路径&#xff1a;.地址(URL)&#xff1a;http://192.168.28.1/repos/test档案库 UUID&#xff1a;a81f9bed-3506-0410-b369-e50476f75162修订版&#xff1a;44节点种类&#xff1a;目录…

教你怎么买虚拟空间(转)

虚拟空间是什么?经常听到站长们在群里问&#xff0c;哪里的虚拟空间好?哪里的虚拟空间性能好?哪里的虚拟空间便宜?虚拟空间是当今IDC行业的一个重要销售产品&#xff0c;虚拟空间也是中国站长们建设网站中最常应用的网站载体。各种数据说明&#xff0c;虚拟空间的好坏能影响…

React笔记-事件分发

事件分发 之前讲述了事件如何绑定在document上&#xff0c;那么具体事件触发的时候是如何分发到具体的监听者呢&#xff1f;我们接着上次注册的事件代理看。当我点击update counter按钮时&#xff0c;触发注册的click事件代理。 function dispatchInteractiveEvent(topLevelTyp…