在glibc中加入strlcpy()函數
源自 BSD 世界的 strlcpy ()函數家族是為了解決 strcpy ()及相關函數的安全問題而創造出來的,在 GNU C Library (glibc)中引入 Strlcpy ()函數是 glibc 歷史上持續時間最長的請求之一,但維護者一直拒絕加入。如今情況有望發生改變。
strcpy ()函數由于不執行字符長度檢查而會導致緩存區溢出和安全問題,strlcpy () 創造出來就是為了確保所有字符串都是以 null 結尾。
2000 年,Christoph Hellwig 遞交了在 glibc 中加入 strlcpy ()和 strlcat () 的補丁,維護者 Ulrich Drepper 斷然拒絕,稱它是一個無效率的 BSD 垃圾,會帶來其它問題,使用 strcat 或 strlcpy 的人應該受到懲罰。Christoph 在象征性的抗議后放棄了,但其他人沒有,他們反復遞交請求反復被拒絕。14 年后,glibc 仍然沒有 strlcpy ()。然而,glibc 項目的管理自 2012 年以來發生了很大的改變,對新功能的引入更加開放,開發者已經表示會合理的考慮 strlcpy ()實現。
來自: Solidot
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!