赞
踩
首先,这是我头给我们出的freeBSD 的一个bug.题目
- void *memcpy(void *dest, void *src, size_t n);
-
- #define KSIZE 1024
- char kbuf[KSIZE];
-
- int copy_from_kernel(void *user_dest, int maxlen)
- {
- int len = KSIZE < maxlen ? KSIZE : maxlen;
- memcpy(user_dest, kbuf, len);
- return len;
- }
-
问: 调用此函数有什么风险.
当maxlen为负值时,会导致内存内存越界访问.
解决方法:将 maxlen 类型 int 改为 size_t.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。