我们有一个可以在RHEL5、RHEL6和RHEL7上正常运行的遗留C应用程序。但同样的应用程序在RHEL 8上崩溃,调用堆栈指向glibc库函数sscanf中的崩溃。
下面是调用堆栈顶部-
*#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版本中运行。
提前感谢您的帮助。
发布于 2020-02-29 02:13:00
所有参数都具有正确的值
如果我们要在这一点上信任你,你不应该在sscanf内部崩溃,但你确实会崩溃。
如果我遇到这个问题,我会尝试两种方法:
__GI__IO_vfscanf中崩溃的位置。https://stackoverflow.com/questions/60433665
复制相似问题