linux - 为什么在旧版本的 ubuntu 上使用新版本的 glibc 时会发生堆栈粉碎?

标签 linux docker ubuntu debugging glibc

我想使用 glibc版本 2.31两个ubuntu 20.04ubuntu 18.04条件是它不应该安装在系统目录中。但是,我得到一个错误。
我有 Dockerfile:

FROM ubuntu:20.04 as container_20_04

WORKDIR /root
RUN apt update && apt download libc6
RUN dpkg-deb -x libc6_2.31-0ubuntu9.2_amd64.deb /root/debs-install
RUN LD_LIBRARY_PATH=/root/debs-install/lib/x86_64-linux-gnu mkdir some_dir

FROM ubuntu:18.04
WORKDIR /root
COPY --from=container_20_04 /root/debs-install /root/debs-install
RUN LD_LIBRARY_PATH=/root/debs-install/lib/x86_64-linux-gnu mkdir some_dir
请注意,相同的命令 LD_LIBRARY_PATH=/root/debs-install/lib/x86_64-linux-gnu mkdir some_dir在两个容器中运行。
然后我运行:
$ docker build . -t smashing
ubuntu 20.04容器中的命令没有错误,但是在 ubuntu 18.04 容器中相同的命令我得到一个错误:
*** stack smashing detected ***: terminated
Aborted (core dumped)
您能否告诉我这里发生了什么或如何调试它?

最佳答案

Could you please tell, what happens here or how it can be debugged?


This answer解释为什么设置 LD_LIBRARY_PATH指向不同的libc.so.6永远无法工作:您必须使用匹配 ld-linux也是。

关于linux - 为什么在旧版本的 ubuntu 上使用新版本的 glibc 时会发生堆栈粉碎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66977148/

相关文章:

android - Linux perf stat 工具返回零指令计数。我在这里错过了什么?

c - 在 Linux 上显示视频

mysql - docker-compose nodejs 在运行 docker composer 时出错。 MySQL ER_NOT_SUPPORTED_AUTH_MODE

amazon-web-services - 使用 cloudformation 在 Elastic Beanstalk 上启动 docker 多容器

android - 尝试使用 Cordova 构建 Android 应用程序时出现 Gradle 错误

ruby-on-rails - 安装 rails 3

linux - 通过 shell 在后台运行 php 脚本-脚本永远不会在 mac os x 上执行

mysql - 无法重启 MySQL Docker 容器,出现类似 `Can' t open the mysql.plugin table` 和 `Table ' mysql.user' doesn't exist` 的错误

ubuntu - java.lang.SecurityException : Could not lock User prefs. 锁定文件访问被拒绝

linux - 为什么我这里有文件结束错误?