MT7621 CPU运行vsftpd报错500 OOPS: munmap的解决办法

在Newifi D1上面编译vsftpd成功,运行的时候报错:500 OOPS: munmap,经过一番研究,终于找到解决办法,在这里写出来希望可以帮助遇到同样问题的朋友。

这是一个源代码里面的bug,openwrt/lede官方尚未修正。解决方案就是给vsftpd源码里面的secbuf.c打个补丁。在第54行修改为vsf_sysutil_memprotect(p_no_access_page, page_size, kVSFSysUtilMapProtReadOnly),然后编译即可成功运行了。

贴一下patch代码。在package的vsftp目录的patch下面。

— a/secbuf.c
+++ b/secbuf.c
@@ -51,7 +51,8 @@ vsf_secbuf_alloc(char** p_ptr, unsigned int size)
*/
*((unsigned int*)p_mmap) = round_up;
p_no_access_page = p_mmap;
– vsf_sysutil_memprotect(p_no_access_page, page_size, kVSFSysUtilMapProtNone);
+ /* fix issue with MIPS SCACHE on MT7621 (and no sense to hide value of mapped block size) */
+ vsf_sysutil_memprotect(p_no_access_page, page_size, kVSFSysUtilMapProtReadOnly);

p_mmap += page_size;
if (page_offset)

 

此条目发表在编译固件分类目录,贴了, , , 标签。将固定链接加入收藏夹。

1 则回应给 MT7621 CPU运行vsftpd报错500 OOPS: munmap的解决办法

  1. 说:

    你好,请问如何在Newifi D1构建可以编译源代码的环境,谢谢!

发表评论

电子邮件地址不会被公开。 必填项已用*标注