还是越界惹的祸-MS抢救记之二

简介: 还是越界惹的祸-MS抢救记之二

     MS版本升级后,第三天,现场的同事告诉我,MS仍然有重启现象。


     我于是在现场开启了ulimit -c unlimited。等待第二次重启后产生的core文件,拿到core文件后,发现进程重启发生在会议模式。而我们MS本次采用了的是桥接模式,应该不会用到会议模式。


     我的直觉及多年的编程经验告诉,一旦程序走了不该走的分支,很有可能发生了内存越界赋值,导致该附近的变量的值被越界修改。


    我显示修改了内存池的部分代码,将潜在有导致内存错误赋值的地方修改了。版本升级后,结果仍然重启。


     于是思路一度闭塞,产品经理告诉我,一旦18号之前解决不了该问题,就需要我们的媒体服务器下线。该采购国外一款媒体服务器,那么就给别人做了嫁衣。


      内心一度很煎熬,也有些无助,但我知道肯定是个BUG惹的祸。它就藏在代码里等着我去发现。


       我于是静下心来,查看该变量附近和内存赋值相关的变量。逐渐我发现与RTP接收及转码的BUFFER。该BUFFER在使用FFMPEG进行转码时,对于转码后的BUFFER进行copy时,没有进行内存保护。


  memcpy( out, m_pEnPkt.data, outsize );


没有对于outsize进行判断,于是我对该处代码做了大小的保护。int ret = fetch( &m_pEnPkt );


    if ( ret >= 0 && m_pEnPkt.size > 0 )
    {       
       int outsize = m_pEnPkt.size;  
       if(outsize>MAXAUDIOBUFFERSIZE)
       {
        LOG(ERROR,"TEncoder::fetch outsize too long %d",outsize);
        outsize=MAXAUDIOBUFFERSIZE;        
       }
       memcpy( out, m_pEnPkt.data, outsize );
       av_free_packet(&m_pEnPkt);
       return outsize;
    }


版本修改后,上线试运行。我静静等待too long的日志,结果这个too long的日志如期而至。于是我知道了,MS的这个最后的虫子被我抓住了。


目前MS在稳定的运行,潜在为公司节省了百万的成本。

相关文章
|
6月前
|
弹性计算 NoSQL 关系型数据库
晕~阿里云降价了!没买的来看看吧!
晕~阿里云降价了!还没买的来看看吧!2024年最新阿里云降价,立即生效!百款产品直降,平均降幅20%,阿里云希望通过此次大规模降价,让更多企业和开发者用上先进的公共云服务,加速云计算在中国各行各业的普及和发展。这次降价包括云服务器ECS、对象存储OSS、云数据库都降价了,真降价,直降价:百款产品直降,平均降幅20%,阿里云百科分享阿里云2024年降价信息汇总表
|
6月前
每日一题----昂贵的婚礼
每日一题----昂贵的婚礼
|
11月前
|
运维 Java 中间件
离谱!阿里面试官嫌面试者技术差,竟彻夜怒肝524页面试通关手册
又到了“金三银四”面试求职高峰期,在金三银四时也参与过不少面试,2021都说工作不好找,也是对开发人员的要求变高。前段时间自己有结合GitHub高频面试资料整理了一些Java后端开发面试常问的高频考点问题做成一份PDF文档(1000道高频题),同时也整理一些图文解析及笔记,今天在这免费分享给大家,希望大家在即将的十月面试做好复习,长期的积累和短期的突击让自己能找到一个满意的工作!
|
编解码 监控 Java
对页游《小兵大战》服务器DM内存溢出的排错过程总结
对页游《小兵大战》服务器DM内存溢出的排错过程总结
63 0
|
人工智能 安全 开发者
大家都在吐槽GPT-4变「笨」了,可能是架构重新设计惹的祸
大家都在吐槽GPT-4变「笨」了,可能是架构重新设计惹的祸
换人!小编连怎么能快速找到女朋友都不知道
换人!小编连怎么能快速找到女朋友都不知道
117 0
换人!小编连怎么能快速找到女朋友都不知道
|
存储 搜索推荐 关系型数据库
|
Java 程序员
【日拱一卒进击大厂系列】面试官:服务器CPU使用率达到了90%以上,该怎么排查问题?
【日拱一卒进击大厂系列】面试官:服务器CPU使用率达到了90%以上,该怎么排查问题?
【日拱一卒进击大厂系列】面试官:服务器CPU使用率达到了90%以上,该怎么排查问题?
Xbox Series X实机首秀惹争议,阿育又掉链子了
5月7日晚,微软Xbox官方带来了新世代主机Xbox Series X的实机展示。可以说这次展示牵动了所有游戏宅们的心,毕竟这关乎他们未来五六年的游戏体验。
171 0
Xbox Series X实机首秀惹争议,阿育又掉链子了
|
关系型数据库 数据库 PostgreSQL
“免费午餐”:这有一张PG大拿、技术动态和真实案例分享盛宴的票
PG是世界上最先进的开源数据库,随着国内应用范围的不断扩大,大家对技术交流渴求也不断加深。下周10月27日-28日,PG领域的技术盛宴在上海举办。云栖社区联合组委会,除了提供2折优惠购票外,还会送出十张赠票。
3264 0