首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RHEL8上的glibc sscanf分段错误,相同的代码在RHEL5、RHEL6和RHEL7上运行

RHEL8上的glibc sscanf分段错误,相同的代码在RHEL5、RHEL6和RHEL7上运行
EN

Stack Overflow用户
提问于 2020-02-27 20:51:11
回答 1查看 48关注 0票数 0

我们有一个可以在RHEL5、RHEL6和RHEL7上正常运行的遗留C应用程序。但同样的应用程序在RHEL 8上崩溃,调用堆栈指向glibc库函数sscanf中的崩溃。

下面是调用堆栈顶部-

代码语言:javascript
复制
*#0  0x00007f437767696e in __GI__IO_vfscanf () from /lib64/libc.so.6
#1  0x00007f437768a991 in vsscanf () from /lib64/libc.so.6
#2  0x00007f4377684f48 in sscanf () from /lib64/libc.so.6*

传递给sscanf的所有参数都是有效的,具有正确的值,我们在gdb中确认了这一点。相同的代码可以在较早的RHEL版本中运行。

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-02-29 02:13:00

所有参数都具有正确的值

如果我们要在这一点上信任你,你不应该在sscanf内部崩溃,但你确实会崩溃。

如果我遇到这个问题,我会尝试两种方法:

  1. 使用valgrind验证您的程序没有堆损坏libc debuginfo package (instructions),这样您就可以准确地看到您的程序在__GI__IO_vfscanf中崩溃的位置。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60433665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档