微信扫码闪退的 BUG,ChatGPT 会修!

admin 2023年4月25日08:07:09评论112 views字数 1154阅读3分50秒阅读模式

今天大家肯定见过一个奇怪的二维码,这个二维码你只要在微信里面打开就会导致闪退;不论是 Android 还是 iOS,就连 macOS 都没法幸免;甚至企业微信和 QQ 都有这个问题;毫无疑问这肯定是某个通用的二维码扫描库有 BUG,微信团队修复速度还挺快的,刚刚我的 macOS 客户端就收到了更新。

今天下午就有民间大神发现,微信的这个二维码扫码库是开源的,甚至还分析出了这个 BUG 造成的原因,然后还给 opencv 官方提交了修复方法;具体的修复细节不我不说了,感兴趣的可以阅读原文查看;修复的关键代码是这么几句:

@@ -196,8 +196,10 @@ void DecodedBitStreamParser::decodeByteSegment(Ref<BitSource> bits_, string& res
    int available = bits.available();
    // try to repair count data if count data is invalid
    if (count * 8 > available) {
-        count = (available + 7 / 8);
+        count = (available + 7) / 8;
    }
+   // avoid reading invalid memory region when no data should be processed
+   if (count <= 0) return;

    ArrayRef<char> bytes_(count);
    char* readBytes = &(*bytes_)[0];

作为一个事后诸葛亮,肯定是一眼就发现了不对劲:count = (available + 7) / 8 错写成了 count = (available + 7 / 8),不得不说这是一个低级错误,但事实上对有着多年从业经验的我来说一点也不吃惊,毕竟人太容易犯错了;然后我就把整个函数都给了 ChatGPT,让它帮 review 一下看看有没有问题,结果 ChatGPT 果然没有让我失望,它直接指出代码中可能存在问题:

微信扫码闪退的 BUG,ChatGPT 会修!

我的 prompt 如下:

请 review 以下代码,检查其中潜在的逻辑错误和 bug,并给出修复办法和优化方案,同时说明其中的原因。

怎么样,是不是大开眼界?事实上,用 ChatGPT review code 已经有人做过了,github 开源地址如下:

https://github.com/anc95/ChatGPT-CodeReview

今后我也会把这个工具加入到自己的工作流之中,感觉又可以少掉几根头发了,哈哈哈

大家晚安!


原文始发于微信公众号(虚拟框架):微信扫码闪退的 BUG,ChatGPT 会修!

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月25日08:07:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   微信扫码闪退的 BUG,ChatGPT 会修!http://cn-sec.com/archives/1690259.html

发表评论

匿名网友 填写信息