zoukankan      html  css  js  c++  java
  • 缓冲区溢出

    缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上。

    可能造成缓冲区溢出的函数:

    gets()对传输字符的个数没有限制,所以它可能会溢出自己的传输缓冲区。类似的函数还有strcat(),sprintf(),vsprintf(),gets(),scanf(),strcpy()

    例如下面程序:
      

    void foo(char*str){
      charbuffer[16];
      strcpy(buffer,str);
    }
    

      上面的strcpy()将直接吧str中的内容copy到buffer中。这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错。

    替换函数:fgets()替换gets(),strncat()替换strcat(),snprintf()替换sprintf(),vsnprintf()替换vsprintf(),strncpy()替换strcpy()。

  • 相关阅读:
    mfc启动画面
    个人冲刺第十天
    个人冲刺第九天
    个人冲刺第八天
    个人冲刺第七天
    个人冲刺第六天
    新一周冲刺计划2
    新一周冲刺
    创意1
    团队绩效与目标
  • 原文地址:https://www.cnblogs.com/realwall/p/2196494.html
Copyright © 2011-2022 走看看