惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LINUX DO - 热门话题
Stack Overflow Blog
Stack Overflow Blog
B
Blog
WordPress大学
WordPress大学
Project Zero
Project Zero
P
Palo Alto Networks Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
T
Tailwind CSS Blog
Forbes - Security
Forbes - Security
F
Full Disclosure
SecWiki News
SecWiki News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hacker News: Ask HN
Hacker News: Ask HN
C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
F
Fortinet All Blogs
Cisco Talos Blog
Cisco Talos Blog
G
Google Developers Blog
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recorded Future
Recorded Future
O
OpenAI News
Spread Privacy
Spread Privacy
MongoDB | Blog
MongoDB | Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Cybersecurity and Infrastructure Security Agency CISA
S
Securelist
V
Vulnerabilities – Threatpost
Y
Y Combinator Blog
IT之家
IT之家
U
Unit 42
腾讯CDC
S
Security Affairs
C
Cisco Blogs
Schneier on Security
Schneier on Security
The Last Watchdog
The Last Watchdog
B
Blog RSS Feed
宝玉的分享
宝玉的分享
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security @ Cisco Blogs
Cyberwarzone
Cyberwarzone
T
The Blog of Author Tim Ferriss

博客园 - 多米诺

IIS W3SVC 无法启动1068错误的解决 Windows 10 自动升级画面 国内网站常用的一些 CDN 公共库加速服务 WebBrowser与IE的关系,如何设置WebBrowser工作在IE9、10、11模式下? [转]Windows 8.1删除这台电脑中视频/文档/下载等六个文件夹的方法 VS2013无法链接到TFS(Visual studio online),错误TF31001,TF31002 WP8 对音视频格式支持的完整说明 硬盘崩溃之后 MSDN Windows 下载 12 Source Code Profilers for C & C++ [转].NET Logging Tools and Libraries Qt 4.7 在VS2010环境下的编译 HttpWebRequest的使用方法 [原创]采用SocketAsyncEventArgs实现异步UDP收发 [转]合约程序员——中小型企业信息化的最佳选择 [转]高可用高性能计算机系统配置与调谐的基本策略 2008在网络的边缘到达了 .Net framework 3.5 无法安装,附解决方法 查找重复的美女图片 :-)
sprintf_s的教训
多米诺 · 2013-08-28 · via 博客园 - 多米诺

    sprintf_s 是个比sprintf更安全的函数,今天在使用的过程中犯了个错误,代码的大致意思如下

 1 void Test_sprintf_s()
 2 {
 3     char    buff[64];
 4 
 5     memset(buff, 0, sizeof(buff));
 6 
 7     sprintf_s(buff, sizeof(buff), "AAAAAA-");
 8 
 9     sprintf_s(buff+strlen(buff), sizeof(buff), "BBBBBBB-");
10 
11 }

  上面的第9行犯了个错误,相信你也能看出来。

  奇怪的是在Release版本下没有问题,Debug下才会导致崩溃,并出现下述提示:

  研究下来,发现sprintf_s执行后,会把整个缓冲区的尾部填满 0xFE。如下图:

毫无疑问,执行到代码第9行,buff后的内存也被错误的填写了0xfe,不出错才怪。