The line of code which has been underlined above was added by Herbert'的简体中文翻译

The line of code which has been und

The line of code which has been underlined above was added by Herbert's patch; that is where things begin to go wrong. Well-written kernel code takes care to avoid dereferencing pointers which might be NULL; in fact, this code checks the tun pointer for just that condition. And that's a good thing; it turns out that, if the configuring ioctl() call has been made, tun will indeed be NULL. If all goes according to plan, tun_chr_poll() will return an error status in this case.But Herbert's patch added a line which dereferences the pointer prior to the check. That, of course, is a bug. In the normal course of operations, the implications of this bug would be somewhat limited: it should cause a kernel oops if tun is NULL. That oops will kill the process which made the bad system call in the first place and put a scary traceback into the system log, but not much more than that should happen. It should be, at worst, a denial of service problem.There is one little problem with that reasoning, though: NULL (zero) can actually be a valid pointer address. By default, the very bottom of the virtual address space (the "zero page," along with a few pages above it) is set to disallow all access as a way of catching null-pointer bugs (like the one described above) in both user and kernel space. But it is possible, using the mmap() system call, to put real memory at the bottom of the virtual address space. There are some valid use cases for this functionality, including running legacy binaries. Even so, most contemporary systems disable page-zero mappings through the use of the mmap_min_addr sysctl knob.
0/5000
源语言: -
目标语言: -
结果 (简体中文) 1: [复制]
复制成功!
的上面已经通过赫伯特的补丁添加下划线代码行; 这就是事情开始出问题。精心编写的内核代码需要照顾,以避免解引用指针,这可能是NULL; 事实上,这段代码检查只是条件囤指针。这是一件好事; 事实证明,如果配置的ioctl()已经调用,囤地的确会NULL。如果一切按计划进行,tun_chr_poll()将在此情况下,返回一个错误。<br><br>但赫伯特的补丁添加了取消引用之前检查指针线。这当然是一个错误。在操作的正常过程,这个bug的影响将比较有限:它应该导致内核哎呀,如果囤地为NULL。这oops将杀死这使得在首位坏系统调用的进程,并把一个可怕的回溯到系统日志,但没有更多比应该发生。它应该是,在最坏情况下,服务问题的否认。<br><br>有一个小问题与推理,但:NULL(零)实际上是一个有效的指针地址。默认情况下,最底层的虚拟地址空间(“零页”,与它上面的几页一起)被设置为不允许在这两个所有访问作为追赶空指针错误(如上面所述)的方式用户和内核空间。但是,有可能使用的mmap()系统调用,实现真正的存储在存储器的虚拟地址空间的底部。有一些有效的使用情况此功能,其中包括运行传统的二进制文件。即便如此,大多数现代系统中禁用页面零映射通过使用mmap_min_addr等多项sysctl开关的。
正在翻译中..
结果 (简体中文) 2:[复制]
复制成功!
上面强调的代码行由赫伯特的补丁添加;这就是事情开始出错的地方。写得很好的内核代码注意避免取消引用可能是 NULL 的指针;事实上,此代码仅检查 tun 指针的条件。这是一件好事;事实证明,如果已进行了配置 ioctl() 调用,tun 确实将为 NULL。如果一切按计划进行,tun_chr_poll() 将在这种情况下返回错误状态。<br><br>但赫伯特的补丁添加了一行在检查前去引用指针。当然,这是一个错误。在正常操作过程中,此 Bug 的含义会有所限制:如果 tun 为 NULL,则它应导致内核 oop。这种oops会首先终止导致坏系统调用的过程,并将一个可怕的跟踪到系统日志中,但不会发生太多。最坏的情况是,这应该是一个拒绝服务的问题。<br><br>不过,这种推理有一个小问题:NULL(零)实际上可以是一个有效的指针地址。默认情况下,虚拟地址空间的最底部("零页"及其上面的几页)设置为禁止所有访问,作为在用户和内核空间中捕获空指针错误(如上述错误)的一种方式。但是,使用 mmap() 系统调用,可以在虚拟地址空间的底部放置真正的内存。此功能有一些有效的用例,包括运行旧二进制文件。即便如此,大多数现代系统都使用mmap_min_addr系统旋钮来禁用页面零映射。
正在翻译中..
结果 (简体中文) 3:[复制]
复制成功!
上面加下划线的代码行是由赫伯特的补丁添加的;这就是事情开始出错的地方。编写良好的内核代码会注意避免取消引用可能为空的指针;事实上,这段代码只检查tun指针的那个条件。这是一件好事;事实证明,如果进行了配置ioctl()调用,tun将确实为空。如果一切按计划进行,tun_chr_poll()将返回错误状态。<br>但是赫伯特的补丁添加了一条在检查之前取消指针引用的线。当然,那是个错误。在正常的操作过程中,这个bug的含义会有点有限:如果tun为空,它应该会导致内核oops。这种oops将杀死一开始就发出错误系统调用的进程,并在系统日志中添加一个可怕的回溯,但不会超出应该发生的范围。最坏的情况下,这应该是拒绝服务问题。<br>不过,这种推理有一个小问题:NULL(零)实际上可以是一个有效的指针地址。默认情况下,虚拟地址空间的最底部(“零页”,以及上面的几页)被设置为不允许所有访问,以捕获用户和内核空间中的空指针错误(如上文所述)。但是,使用mmap()系统调用可以将实际内存放在虚拟地址空间的底部。这个功能有一些有效的用例,包括运行遗留二进制文件。即使如此,大多数现代系统通过使用mmap_min_addr sysctl旋钮禁用页面零映射。<br>
正在翻译中..
 
其它语言
本翻译工具支持: 世界语, 丹麦语, 乌克兰语, 乌兹别克语, 乌尔都语, 亚美尼亚语, 伊博语, 俄语, 保加利亚语, 信德语, 修纳语, 僧伽罗语, 克林贡语, 克罗地亚语, 冰岛语, 加利西亚语, 加泰罗尼亚语, 匈牙利语, 南非祖鲁语, 南非科萨语, 卡纳达语, 卢旺达语, 卢森堡语, 印地语, 印尼巽他语, 印尼爪哇语, 印尼语, 古吉拉特语, 吉尔吉斯语, 哈萨克语, 土库曼语, 土耳其语, 塔吉克语, 塞尔维亚语, 塞索托语, 夏威夷语, 奥利亚语, 威尔士语, 孟加拉语, 宿务语, 尼泊尔语, 巴斯克语, 布尔语(南非荷兰语), 希伯来语, 希腊语, 库尔德语, 弗里西语, 德语, 意大利语, 意第绪语, 拉丁语, 拉脱维亚语, 挪威语, 捷克语, 斯洛伐克语, 斯洛文尼亚语, 斯瓦希里语, 旁遮普语, 日语, 普什图语, 格鲁吉亚语, 毛利语, 法语, 波兰语, 波斯尼亚语, 波斯语, 泰卢固语, 泰米尔语, 泰语, 海地克里奥尔语, 爱尔兰语, 爱沙尼亚语, 瑞典语, 白俄罗斯语, 科西嘉语, 立陶宛语, 简体中文, 索马里语, 繁体中文, 约鲁巴语, 维吾尔语, 缅甸语, 罗马尼亚语, 老挝语, 自动识别, 芬兰语, 苏格兰盖尔语, 苗语, 英语, 荷兰语, 菲律宾语, 萨摩亚语, 葡萄牙语, 蒙古语, 西班牙语, 豪萨语, 越南语, 阿塞拜疆语, 阿姆哈拉语, 阿尔巴尼亚语, 阿拉伯语, 鞑靼语, 韩语, 马其顿语, 马尔加什语, 马拉地语, 马拉雅拉姆语, 马来语, 马耳他语, 高棉语, 齐切瓦语, 等语言的翻译.

Copyright ©2024 I Love Translation. All reserved.

E-mail: