-
-
[原创]整数溢出
-
发表于:
2013-7-9 17:48
4014
-
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
int cmdstring(char *buf1, char *buf2, int len1, int len2)
{
char buf[256];
if ((len1+len2) > 256)
{
printf("超出buf容纳范围!\n");
return -1;
}
memcpy(buf, buf1, len1);
memcpy(buf + len1, buf2, len2);
printf("复制%d + %d = %d个字节到buf!\n", len1, len2, len1 + len2);
return 0;
}
int main(int argc, char *argv[])
{
cmdstring(argv[1], argv[2], atoi(argv[3]), atoi(argv[4]));
return 0;
}
cmd运行程序
c:\>程序.exe china hello 2 5
复制2 + 5 = 7个字节到buf!
c:\>程序.exe china hello 300 200
超出buf容纳范围!
程序貌似看着没有异常,那么输入
china hello
2147483647 1
出现什么结果呢?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课