一个由有符号下标引起的bug】的更多相关文章

先看段代码: if(s[d[i]]) { ... } 这里的d是一个char*的内存buffer,s是一个256长度的bool数组.上段代码逻辑是,s已进行过初始化,其作用是过滤字节,有些字节对应true,有些字节对应false.明显,d[i]有256种可能.上面的逻辑正确么? 上面的代码其实就是我项目里的一段代码,看似没有问题,实际上有个潜伏的bug.d[i]是有符号的,换句话说,d[i]可能为负. 项目里d[i]有一次等于0xc4,这个时候s访问越界了.因为d[i]为负,s[d[i]]往内存…
前言 刷题刷得头疼,水篇blog.这个BUG是我大约一个月前,在做15445实现lock_manager的时候遇到的一个很恶劣但很愚蠢的BUG,排查 + 摸鱼大概花了我三天的时间,根本原因是我在使用std::unordered_map做并发的时候考虑不周.但由于这个BUG无法在我的本地复现,只能提交代码后再gradescope上看到执行日志,而且打印的日志还不能太多,因为gradescope的执行比较慢,打印日志如果稍微多加一点就会报TIMEOUT,所以着实让我抓狂了一段时间.最后的解决也很突然…
如果你去参考面试,做足了准备,面对面试官员从容不迫,吐沫横飞的大谈自己的工作经历.突然,面试官横插一句:说一个你在工作非常有价值的bug.顿时,整个空气都仿佛都凝固了!“What?”... 我想没几个人可以张口就来吧!? 这其实是前两天测试论坛上一个同学的问题,也是我以前面试时被问到一个问题,看到这个问题后,我的大脑开始搜索过去遇到的印象深刻或有价值的bug. 第一个冒出来的居然是一个段子: 用JS调微信的接口获取用户名,用同事老张的微信号做测试,结果一直获取的是null,怎么调都没发现错误,冥…
本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:https://mp.weixin.qq.com/s/osB-BOl6W-ZLTSttTkqMPQ 今天,分享一个JDK中令人惊讶的BUG,这个BUG的神奇之处在于,复现它的用例太简单了,人肉眼就能回答的问题,JDK中却存在了十几年.经过测试,我们发现从JDK8到14都存在这个问题. 大家可以在自己的…
问题描述 今天写项目的时候遇见一个特别诡异的 bug,体现在在执行某条语句时,程序会莫名崩溃,并且给出的错误信息也非常难懂,只有一个malloc(): invalid size (unsorted)错误信息,从直观上看起来是 malloc 函数无法分配到内存,就想着应该是哪个动态分配内存的地方变量没获取到值,但是调试的时候才发现没这么简单. 问题排查 调试的时候,发现程序崩溃的时候的调用栈最后竟然是一个 vector,并且是在 push_back 的时候,心里面就隐隐感觉不对了,因为这个程序中的…
欢迎关注公众号:bin的技术小屋,如果大家在看文章的时候发现图片加载不了,可以到公众号查看原文 本系列Netty源码解析文章基于 4.1.56.Final版本 最近在 Review Netty 代码的时候,不小心用我的肉眼抓到了一个隐藏很深很深的内存泄露 Bug. 于是笔者将这个故事....哦不 .....事故,详细的阐述出来分享给大家. 这将是一篇很长很长的故事,在本文中笔者会详细描述这个内存泄露 Bug 的发现,分析,修复过程.顺便将对象池在 Netty 中的一些精妙的设计方案及其源码实现一…
一个编译的BUG,在原生的VS2015中没有问题,但更新至VS2015 Update1之后就有了,大概是Update1用了新的编译器,害得我好苦.经测试,VS2013 Update5中也存在这个问题,大概是用了相同的编译器. 下面我们来重现这个BUG,用最简洁的代码来重现这个BUG. 测试代码 一个接口 一个很简单的接口,定义一个“是否锁定”的功能 public interface ILockable { bool IsLocked { get; set; } } 一个实体 同样一个很简单的实体…
public void queryTaskResult2() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); PrintWriter out = response.getWriter(); String newsIdselect = request…
最近跟踪bbr的状态转换的代码,发现一个问题: [,min_rtt_us=,full_bw=,cycle_idx=,pacing_gain=,cwnd_gain=,rtt_cnt= [,min_rtt_us=,cur_bw=,cycle_idx=,pacing_gain=,cwnd_gain=,rtt_cnt=,snd_cwnd= [,min_rtt_us=,full_bw=,cycle_idx=,pacing_gain=,cwnd_gain=,rtt_cnt= 可以看到,bbr的第一个处理,是…
这次就不说很多没有写博客了,因为前几天已经写过了.\^o^/ 昨天我们刚讨论了关于自动化运维工作的实现方式,如果批量执行,中间出错怎么办?突然有人提出mysql支持--force,可以跳过出错继续执行. 那么我就想看看它这个功能是什么样子的,看看我能不能借鉴一下. 然后我就在一个测试机器上写入如下命令: mysql -h127.0.0.1 -P3307 -uwzf -pxxxxxxx mysql --force -e "insert into myinfo (1,'asdf');insert i…