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.pswp.cn/news/275523.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275523.shtml
英文地址,請注明出處:http://en.pswp.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…