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).
commit cb61630ed712d033f54295f776967532d3f4b46a Author: Florian Weimer <fweimer> 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]"). Change-Id: Ief6f9f17e91d1f7263421c56a7dc018f4f595c21
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. https://access.redhat.com/errata/RHSA-2020:4444