diff options
author | Florian Weimer <fweimer@redhat.com> | 2017-08-29 17:33:58 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2017-08-29 17:33:58 +0200 |
commit | 251bccfa1fcb3568e43546b0df33e052889406c1 (patch) | |
tree | 29c7966c2fc0ee4fba8cbf1ddf42123a71b0716e /iconv/Makefile | |
parent | e7c18b9d0aacb02f9d6edffdf4d1e26a54fbfb84 (diff) | |
download | glibc-251bccfa1fcb3568e43546b0df33e052889406c1.tar.gz glibc-251bccfa1fcb3568e43546b0df33e052889406c1.tar.xz glibc-251bccfa1fcb3568e43546b0df33e052889406c1.zip |
iconv_open: Fix heap corruption on gconv_init failure [BZ #22026]
Also mangle the __end_fct function pointer on the error handling path.
Diffstat (limited to 'iconv/Makefile')
-rw-r--r-- | iconv/Makefile | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/iconv/Makefile b/iconv/Makefile index b2fead0479..fd3575178e 100644 --- a/iconv/Makefile +++ b/iconv/Makefile @@ -61,6 +61,20 @@ ifeq ($(run-built-tests),yes) xtests-special += $(objpfx)test-iconvconfig.out endif +# Make a copy of the file because gconv module names are constructed +# relative to the path of the configuration file. +$(objpfx)gconv-modules: test-gconv-modules + cp $< $@ + +ifeq (yes,$(build-shared)) +tests += tst-gconv-init-failure +modules-names += tst-gconv-init-failure-mod +modules-names-tests += tst-gconv-init-failure-mod +$(objpfx)tst-gconv-init-failure-mod.so: $(libsupport) +$(objpfx)tst-gconv-init-failure.out: \ + $(objpfx)gconv-modules $(objpfx)tst-gconv-init-failure-mod.so +endif + include ../Rules $(inst_bindir)/iconv: $(objpfx)iconv_prog $(+force) |