You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.6 KiB
47 lines
1.6 KiB
commit b3f935940ebcdf553b64e74fdf65dfd4858821ad |
|
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> |
|
Date: Tue May 31 12:51:43 2022 -0300 |
|
|
|
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 52a5fe70a2c77935. |
|
|
|
Checked on i686-linux-gnu. |
|
|
|
(cherry picked from commit c789e6e40974e2b67bd33a17f29b20dce6ae8822) |
|
|
|
diff --git a/iconv/gconv_parseconfdir.h b/iconv/gconv_parseconfdir.h |
|
index a586268abc103abd..79398a980cde84e3 100644 |
|
--- a/iconv/gconv_parseconfdir.h |
|
+++ b/iconv/gconv_parseconfdir.h |
|
@@ -32,8 +32,11 @@ |
|
# define readdir __readdir |
|
# define closedir __closedir |
|
# define mempcpy __mempcpy |
|
-# define lstat64 __lstat64 |
|
+# define struct_stat struct __stat64_t64 |
|
+# define lstat __lstat64_time64 |
|
# define feof_unlocked __feof_unlocked |
|
+#else |
|
+# define struct_stat struct stat |
|
#endif |
|
|
|
/* Name of the file containing the module information in the directories |
|
@@ -158,12 +161,12 @@ gconv_parseconfdir (const char *prefix, const char *dir, size_t dir_len) |
|
&& strcmp (ent->d_name + len - strlen (suffix), suffix) == 0) |
|
{ |
|
char *conf; |
|
- struct stat64 st; |
|
+ struct_stat st; |
|
if (asprintf (&conf, "%s/%s", buf, ent->d_name) < 0) |
|
continue; |
|
|
|
if (ent->d_type != DT_UNKNOWN |
|
- || (lstat64 (conf, &st) != -1 && S_ISREG (st.st_mode))) |
|
+ || (lstat (conf, &st) != -1 && S_ISREG (st.st_mode))) |
|
found |= read_conf_file (conf, dir, dir_len); |
|
|
|
free (conf);
|
|
|