当前位置:网站首页>记录线上bug解决list(未完待续7/4)
记录线上bug解决list(未完待续7/4)
2022-07-04 19:05:00 【谢白羽】
文章目录
一、sprintf引起的内存越界
有玩家客户端发过来的数据包解包失败,但不知道原因,所以增加了一个函数把错误的数据包以 16 进制输出到 log 的函数
char *buffer = calloc(sz*2+1, sizeof(char));
先分配一块内存,长度是要 dump 的数据长度两倍加一。然后循环
sprintf(buffer+i*2, "%02x", data[i]);
这就是我们看了几次没留意的 bug 所在:data 是 const char
类型,有符号的。当 data[i] 是一个负数时, %02x 不一定只输出 3 个字节(别忘记字符串结尾的 \0)。buffer 这块内存就被写越界了
问题
最后一个字符是负数的时候 就越界了 超过两个字符 把尾部得0覆盖掉了 所以问题就来了,解决
改成snprintf或
sprintf(buffer+i*2, "%02x", (unsigned char)data[i]);
边栏推荐
- 哈希(Hash)竞猜游戏系统开发功能分析及源码
- Flet教程之 07 PopupMenuButton基础入门(教程含源码)
- 被奉为经典的「金字塔原理」,教给我们哪些PPT写作技巧?
- 九齐NY8B062D MCU规格书/datasheet
- Why is the maximum speed the speed of light
- NLP、视觉、芯片...AI重点方向发展几何?青源会展望报告发布[附下载]
- 电脑页面不能全屏怎么办?Win11页面不能全屏的解决方法
- Every time I look at the interface documents of my colleagues, I get confused and have a lot of problems...
- Six stones programming: about code, there are six triumphs
- Taishan Office Technology Lecture: about the order of background (shading and highlighting)
猜你喜欢
针对深度学习的“失忆症”,科学家提出基于相似性加权交错学习,登上PNAS
In operation (i.e. included in) usage of SSRs filter
What is the application technology of neural network and Internet of things
MySQL中的日期时间类型与格式化方式
托管式服务网络:云原生时代的应用体系架构进化
NLP, vision, chip What is the development direction of AI? Release of the outlook report of Qingyuan Association [download attached]
Neural network IOT platform construction (IOT platform construction practical tutorial)
复杂因子计算优化案例:深度不平衡、买卖压力指标、波动率计算
Win11U盘拒绝访问怎么办?Win11U盘拒绝访问的有效解决方法
Dynamic memory management
随机推荐
华为云云商店首页 Banner 资源位申请
Write it down once Net analysis of thread burst height of an industrial control data acquisition platform
Cann operator: using iterators to efficiently realize tensor data cutting and blocking processing
凌云出海记 | 文华在线&华为云:打造非洲智慧教学新方案
栈:如何实现有效括号的判断?
[ismb2022 tutorial] the picture shows the precision medicine of learning. Marinka zitnik, Harvard University, keynote speaker, with 87 ppt
Win11无法将值写入注册表项如何解决?
LeetCode 871. 最低加油次数
1500万员工轻松管理,云原生数据库GaussDB让HR办公更高效
FS4061A升压8.4V充电IC芯片和FS4061B升压12.6V充电IC芯片规格书datasheet
What is the development of block hash quiz game system? Hash quiz game system development (case mature)
Integretee integrates into Moonriver through xcm, bringing enterprise class privacy solutions to its ecosystem
哈希(Hash)竞猜游戏系统开发功能分析及源码
Length of the longest integrable subarray
[graduation season] green ant new fermented grains wine, red mud small stove. If it snows late, can you drink a cup?
C server log module
[today in history] July 4: the first e-book came out; The inventor of magnetic stripe card was born; Palm computer pioneer was born
剑指 Offer II 80-100(持续更新)
左右最值最大差问题
In operation (i.e. included in) usage of SSRs filter