proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« 更新 ipcn 加速用的 squid 提一下 log 支持 Referer 和 User-Agent | Main | 搜狗输入法Beta2今日发布 紫光拼音输入法V5 »

June 20, 2006

strcpy 和 内存越界

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
http://windtear.net/archives/2006/06/20/001010.html
http://windtear.net/archives/2006/06/20/001010.html

strcpy 和 内存越界

strcpy 和 内存越界的问题 应该算是超级经典了
发生也很容易: 前面的处理发生异常 以至于没有置空最后的内存

Q 同学英明神武的发现并解决了这个问题
记录一下 两件事:
1. 初始化置空很必要(NULL指针和数组最后一个\0)
2. 可以用 strncpy 防止难以预料的越界

strcpy, strncpy - copy a string

#include <string.h>
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);

const char *mempointer = NULL;
char staticarray[128];
memset(staticarray, 0, sizeof(staticarray));

mempointer = ......

strcpy(staticarray, mempointer);
strncpy(staticarray, mempointer, sizeof(staticarray)-1);
本blog WWW

Posted by windtear at June 20, 2006 11:43 PM

Trackback Pings

TrackBack URL for this entry:
http://cgi.windtear.net/cgi-bin/wt-tb.cgi/1010

Comments

C里边操作字符串最好用一套自己写的东东,比如qmail中的stralloc,postfix中的vstring,还有glib的gstring(http://developer.gnome.org/doc/API/2.0/glib/glib-Strings.html)

Posted by: xjb at July 10, 2006 10:43 AM

Post a comment

Remember Me?


本站使用中的任何问题,请与 windtear SPAM windtear SPAM net 联系
Copyright© 1999-2008 Windtear. All rights reserved.
京ICP备05050670号