【问题标题】:Why does stack smashing happen while using newer version of glibc for older version of ubuntu?为什么在旧版本的 ubuntu 上使用新版本的 glibc 时会发生堆栈粉碎?
【发布时间】:2021-07-02 17:44:23
【问题描述】:

我想将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)

您能告诉我,这里发生了什么或如何调试它?

【问题讨论】:

    标签: linux docker ubuntu debugging glibc


    【解决方案1】:

    您能告诉我这里发生了什么或如何调试它吗?

    This answer 解释了为什么将LD_LIBRARY_PATH 设置为指向不同的libc.so.6 不能永远起作用:您必须也使用匹配的ld-linux

    【讨论】:

      猜你喜欢
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 2023-01-08
      • 1970-01-01
      • 2020-12-23
      相关资源
      最近更新 更多