libio: Remove codecvt vtable [BZ #24588]
authorFlorian Weimer <fweimer@redhat.com>
Mon, 20 May 2019 19:54:57 +0000 (21:54 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 20 May 2019 19:54:57 +0000 (21:54 +0200)
commit09e1b0e3f6facc1af2dbcfef204f0aaa8718772b
tree18056a8f7177511eff47519d176c310901f5e455
parent75c51570c710aa9c6df6b7a1e131392e1408c63f
libio: Remove codecvt vtable [BZ #24588]

The codecvt vtable is not a real vtable because it also contains the
conversion state data.  Furthermore, wide stream support was added to
GCC 3.0, after a C++ ABI bump, so there is no compatibility
requirement with libstdc++.

This change removes several unmangled function pointers which could
be used with a corrupted FILE object to redirect execution.  (libio
vtable verification did not cover the codecvt vtable.)

Reviewed-by: Yann Droneaud <ydroneaud@opteya.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
ChangeLog
libio/fileops.c
libio/iofgetpos.c
libio/iofgetpos64.c
libio/iofsetpos.c
libio/iofsetpos64.c
libio/iofwide.c
libio/libio.h
libio/libioP.h
libio/wfileops.c