diff options
author | Florian Weimer <fweimer@redhat.com> | 2017-08-29 16:51:20 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2017-08-29 17:16:09 +0200 |
commit | e7c18b9d0aacb02f9d6edffdf4d1e26a54fbfb84 (patch) | |
tree | 39f2b1925edac14b27f16bcaeb5bbeabbed4de02 | |
parent | 7daada0319613fec8c2a10b28eed911f4d359a6a (diff) | |
download | glibc-e7c18b9d0aacb02f9d6edffdf4d1e26a54fbfb84.tar.gz glibc-e7c18b9d0aacb02f9d6edffdf4d1e26a54fbfb84.tar.xz glibc-e7c18b9d0aacb02f9d6edffdf4d1e26a54fbfb84.zip |
iconv: Mangle __btowc_fct even without __init_fct [BZ #22025]
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | iconv/gconv_db.c | 21 |
2 files changed, 19 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog index 0826caf7ef..1efd7f5a4c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2017-08-29 Florian Weimer <fweimer@redhat.com> + + [BZ #22025] + * iconv/gconv_db.c (free_derivation): Remove redundant + parentheses. + (gen_steps): Unconditionally mangle __btowc_fct after + initialization. + (increment_counter): Likewise. Do not call init_fct for internal + modules. + 2017-08-29 Joseph Myers <joseph@codesourcery.com> [BZ #22028] diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c index b748467de5..7a95aeaeac 100644 --- a/iconv/gconv_db.c +++ b/iconv/gconv_db.c @@ -179,8 +179,8 @@ free_derivation (void *p) size_t cnt; for (cnt = 0; cnt < deriv->nsteps; ++cnt) - if ((deriv->steps[cnt].__counter > 0) - && (deriv->steps[cnt].__shlib_handle != NULL)) + if (deriv->steps[cnt].__counter > 0 + && deriv->steps[cnt].__shlib_handle != NULL) { __gconv_end_fct end_fct = deriv->steps[cnt].__end_fct; #ifdef PTR_DEMANGLE @@ -323,11 +323,10 @@ gen_steps (struct derivation_step *best, const char *toset, result[step_cnt].__end_fct = NULL; break; } - + } # ifdef PTR_MANGLE - PTR_MANGLE (result[step_cnt].__btowc_fct); + PTR_MANGLE (result[step_cnt].__btowc_fct); # endif - } } else #endif @@ -403,16 +402,14 @@ increment_counter (struct __gconv_step *steps, size_t nsteps) /* These settings can be overridden by the init function. */ step->__btowc_fct = NULL; - } - /* Call the init function. */ - __gconv_init_fct init_fct = step->__init_fct; + /* Call the init function. */ + __gconv_init_fct init_fct = step->__init_fct; #ifdef PTR_DEMANGLE - PTR_DEMANGLE (init_fct); + PTR_DEMANGLE (init_fct); #endif - if (init_fct != NULL) - { - DL_CALL_FCT (init_fct, (step)); + if (init_fct != NULL) + DL_CALL_FCT (init_fct, (step)); #ifdef PTR_MANGLE PTR_MANGLE (step->__btowc_fct); |