当前位置:   article > 正文

value ? value :value 三目运算副作用 之 内存溢出 ? :_void *memcpy(void *dest, void *src, size t n);#def

void *memcpy(void *dest, void *src, size t n);#define ksize10244 char kbuf[k

首先,这是我头给我们出的freeBSD 的一个bug.题目

  1. void *memcpy(void *dest, void *src, size_t n);
  2. #define KSIZE 1024
  3. char kbuf[KSIZE];
  4. int copy_from_kernel(void *user_dest, int maxlen)
  5. {
  6. int len = KSIZE < maxlen ? KSIZE : maxlen;
  7. memcpy(user_dest, kbuf, len);
  8. return len;
  9. }

问:  调用此函数有什么风险. 

当maxlen为负值时,会导致内存内存越界访问.


解决方法:将 maxlen 类型 int 改为 size_t.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/477971
推荐阅读
相关标签
  

闽ICP备14008679号