Current glibc does not preserve binary compatibilty with certain C++ binaries linked against versions before glibc 2.1. The legacy stdio implementation in libio/oldstdfiles.c needs a check for interposition of the stdio handles, similar to the existing check in libio/stdfiles.c (which was fixed prior to the release of Red Hat Enterprise Linux 8.0).
Author: Florian Weimer <firstname.lastname@example.org>
Date: Fri Nov 22 22:10:42 2019 +0100
libio: Disable vtable validation for pre-2.1 interposed handles [BZ #25203]
Commit c402355dfa7807b8e0adb27c009135a7e2b9f1b0 ("libio: Disable
vtable validation in case of interposition [BZ #23313]") only covered
the interposable glibc 2.1 handles, in libio/stdfiles.c. The
parallel code in libio/oldstdfiles.c needs similar detection logic.
Fixes (again) commit db3476aff19b75c4fdefbe65fcd5f0a90588ba51
("libio: Implement vtable verification [BZ #20191]").
Verified with Counter Strike server. It fails on glibc-2.28-105.el8 with "Fatal error: glibc detected an invalid stdio handle" and it runs on glibc-2.28-117.el8.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory (Moderate: glibc security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.