There is only a single file-based backend, so that the dispatching through function pointers is unnecessary. In addition, this eliminates a bunch of non-mangled function pointers, so it s minor security hardening.
The master branch has been updated by Florian Weimer <fw@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1a7fe2ebe52b3c8bf465d1756e69452d05c1c103 commit 1a7fe2ebe52b3c8bf465d1756e69452d05c1c103 Author: Florian Weimer <fweimer@redhat.com> Date: Mon Aug 5 15:54:10 2019 +0200 login: Remove utmp backend jump tables [BZ #23518] There is just one file-based implementation, so this dispatch mechanism is unnecessary. Instead of the vtable pointer __libc_utmp_jump_table, use a non-negative file_fd as the indicator that the backend is initialized.
Fixed for glibc 2.31.
The release/2.30/master branch has been updated by Florian Weimer <fw@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b90aefd4ac44e9353d45170282c01f0bfdeeaf1c commit b90aefd4ac44e9353d45170282c01f0bfdeeaf1c Author: Florian Weimer <fweimer@redhat.com> Date: Mon Aug 5 15:54:10 2019 +0200 login: Remove utmp backend jump tables [BZ #23518] There is just one file-based implementation, so this dispatch mechanism is unnecessary. Instead of the vtable pointer __libc_utmp_jump_table, use a non-negative file_fd as the indicator that the backend is initialized. (cherry picked from commit 1a7fe2ebe52b3c8bf465d1756e69452d05c1c103)