Commit Graph

8 Commits

Author SHA1 Message Date
Florian Weimer
f50a6c843a gconv: Use 64-bit interfaces in gconv_parseconfdir (bug 29583)
It's possible that inode numbers are outside the 32-bit range.
The existing code only handles the in-libc case correctly, and
still uses the legacy interfaces when building iconv.

Suggested-by: Helge Deller <deller@gmx.de>
(cherry picked from commit f97905f246)
2022-09-21 13:13:02 +02:00
Adhemerval Zanella
b3f935940e iconv: Use 64 bit stat for gconv_parseconfdir (BZ# 29213)
The issue is only when used within libc.so (iconvconfig already builds
with _TIME_SIZE=64).

This is a missing spot initially from 52a5fe70a2.

Checked on i686-linux-gnu.

(cherry picked from commit c789e6e409)
2022-06-01 13:36:56 -03:00
Siddhesh Poyarekar
3fc51f35b4 iconvconfig: Fix behaviour with --prefix [BZ #28199]
The consolidation of configuration parsing broke behaviour with
--prefix, where the prefix bled into the modules cache.  Accept a
prefix which, when non-NULL, is prepended to the path when looking for
configuration files but only the original directory is added to the
modules cache.

This has no effect on the codegen of gconv_conf since it passes NULL.

Reported-by: Patrick McCarty <patrick.mccarty@intel.com>
Reported-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
Reviewed-by: Andreas Schwab <schwab@linux-m68k.org>
(cherry picked from commit 43cea6d565)
2021-09-13 20:51:04 +05:30
Siddhesh Poyarekar
3a48da47a9 gconv_parseconfdir: Fix memory leak
The allocated `conf` would leak if we have to skip over the file due
to the underlying filesystem not supporting dt_type.

Reviewed-by: Arjun Shankar <arjun@redhat.com>
(cherry picked from commit 5f9b78fe35)
2021-08-04 15:51:21 +05:30
Florian Weimer
7fcdb53253 libio: Replace internal _IO_getdelim symbol with __getdelim
__getdelim is exported, _IO_getdelim is not.  Add a hidden prototype
for __getdelim.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2021-07-07 18:33:52 +02:00
Siddhesh Poyarekar
7f784fabcb iconvconfig: Use the public feof_unlocked
Build of iconvconfig failed with CFLAGS=-Os since __feof_unlocked is
not a public symbol.  Replace with feof_unlocked (defined to
__feof_unlocked when IS_IN (libc)) to fix this.

Reported-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
2021-07-02 16:53:25 +05:30
Siddhesh Poyarekar
f3629a4be8 Handle DT_UNKNOWN in gconv-modules.d
On filesystems that do not support dt_type, a regular file shows up as
DT_UNKNOWN.  Fall back to using lstat64 to read file properties in
such cases.

Reviewed-by: DJ Delorie <dj@redhat.com>
2021-06-23 08:54:13 +05:30
Siddhesh Poyarekar
d8e8097f3b gconv_conf: Split out configuration file processing
Split configuration file processing into a separate header file and
include it.  Macroize all calls that need to go through internal
interfaces so that iconvconfig can also use them.

Reviewed-by: DJ Delorie <dj@redhat.com>
2021-06-23 08:54:13 +05:30