看下面的例子:
unsigned int a ;
unsigned int b;
int *ptr = (int *)malloc(a+b);
memcpy(ptr, buf, a);
有可能 a+b 发生 integer overflow, 导致 ptr 申请到比较小的内存区域,memcpy 的时候发生溢出。
看下面的例子:
unsigned int a ;
unsigned int b;
int *ptr = (int *)malloc(a+b);
memcpy(ptr, buf, a);
有可能 a+b 发生 integer overflow, 导致 ptr 申请到比较小的内存区域,memcpy 的时候发生溢出。