Colin Walters
2fb111424e
libarchive: Handle UTF-8 filenames without locale dependency
...
When importing archives (including OCI container layers), libarchive
attempts to convert filenames from UTF-8 to the current locale charset.
In POSIX/C locale (which uses ASCII), this conversion fails for any
non-ASCII UTF-8 characters, returning ARCHIVE_WARN.
This is triggered by Python 3.14 which creates a "𝜋thon" symlink in
venvs, and affects bootc installations in environments where LANG is
not set (defaulting to POSIX locale).
Fix this by:
1. Using archive_entry_pathname_utf8() and archive_entry_symlink_utf8()
which return UTF-8 directly without locale conversion
2. Falling back to the regular accessors with explicit UTF-8 validation
when the _utf8 variants return NULL
3. Accepting ARCHIVE_WARN from archive_read_next_header() since we now
validate UTF-8 ourselves rather than relying on libarchive charset
conversion
This matches the behavior of GNU tar which treats filenames as opaque
bytes without charset conversion.
Closes: https://github.com/ostreedev/ostree/issues/3431
2026-01-21 17:15:22 -05:00
..
2017-03-30 19:19:54 +00:00
2020-01-24 13:02:09 -07:00
2020-01-24 13:02:09 -07:00
2025-05-23 14:39:55 +10:00
2025-08-25 11:06:16 -04:00
2021-08-30 13:27:38 -04:00
2025-06-26 10:40:42 -04:00
2023-09-29 13:45:29 -04:00
2022-04-12 09:53:54 +00:00
2025-02-25 14:58:35 -05:00
2021-12-07 08:34:25 -05:00
2017-03-30 19:19:54 +00:00
2021-12-07 08:34:25 -05:00
2017-11-01 17:38:26 +00:00
2017-11-01 17:38:26 +00:00
2018-01-04 12:32:47 +00:00
2016-07-28 10:10:17 +00:00
2021-12-07 08:34:25 -05:00
2023-05-02 08:42:19 -04:00
2023-05-02 08:42:19 -04:00
2022-01-25 16:44:39 -05:00
2025-08-26 09:10:21 -04:00
2025-06-04 13:58:27 -04:00
2016-04-04 14:19:35 +00:00
2018-01-12 19:38:34 +00:00
2016-06-09 21:10:35 +00:00
2016-02-26 08:19:01 -05:00
2016-02-26 08:19:01 -05:00
2020-06-11 18:56:35 +00:00
2021-12-07 08:34:25 -05:00
2024-02-19 21:01:05 +00:00
2023-05-02 08:42:19 -04:00
2021-04-15 12:33:34 -04:00
2020-05-27 21:59:23 +00:00
2025-07-10 08:58:19 +02:00
2024-02-28 09:40:34 -05:00
2021-12-07 08:34:25 -05:00
2024-02-28 09:40:34 -05:00
2021-12-07 08:34:25 -05:00
2025-01-10 08:04:50 -05:00
2023-07-29 08:47:54 -04:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2024-03-08 10:01:06 +08:00
2024-02-28 09:40:34 -05:00
2024-02-28 09:40:34 -05:00
2021-12-07 08:34:25 -05:00
2024-02-28 09:40:34 -05:00
2021-12-07 08:34:25 -05:00
2024-02-19 21:01:15 +00:00
2022-09-28 12:26:31 +02:00
2024-02-16 13:34:34 +01:00
2024-02-28 09:40:34 -05:00
2024-02-28 09:40:34 -05:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2024-02-28 09:40:34 -05:00
2024-05-03 19:57:31 -04:00
2024-02-28 09:40:34 -05:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2025-03-21 11:10:46 -04:00
2022-11-22 10:27:28 -05:00
2024-12-02 10:40:17 -05:00
2021-12-07 08:34:25 -05:00
2022-01-20 10:54:30 +00:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2023-05-02 08:42:19 -04:00
2025-07-10 08:58:19 +02:00
2023-05-02 08:42:19 -04:00
2023-05-02 08:42:19 -04:00
2022-03-26 10:55:42 +01:00
2023-05-02 08:42:19 -04:00
2024-02-19 21:01:05 +00:00
2023-01-02 10:40:17 +00:00
2024-11-04 13:01:55 -05:00
2023-06-13 16:17:16 -04:00
2025-07-09 18:27:43 -04:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2024-02-19 21:01:05 +00:00
2024-02-19 21:01:05 +00:00
2021-12-07 08:34:25 -05:00
2023-09-08 17:49:25 -04:00
2021-12-07 08:34:25 -05:00
2024-02-19 21:01:07 +00:00
2024-02-19 21:01:05 +00:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2024-02-19 21:01:05 +00:00
2025-02-26 19:58:31 +00:00
2021-12-07 08:34:25 -05:00
2023-05-02 08:42:19 -04:00
2021-12-07 08:34:25 -05:00
2024-03-08 10:01:06 +08:00
2024-07-10 17:52:28 -04:00
2024-05-02 14:18:55 -04:00
2026-01-21 17:15:22 -05:00
2021-12-07 08:34:25 -05:00
2024-02-19 21:01:05 +00:00
2023-05-02 08:42:19 -04:00
2023-05-02 08:42:19 -04:00
2024-07-10 10:22:07 +09:00
2023-05-02 08:42:19 -04:00
2024-02-28 09:40:34 -05:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2023-05-02 08:42:19 -04:00
2023-05-02 08:42:19 -04:00
2024-10-28 09:31:34 -04:00
2024-02-23 14:58:48 +00:00
2024-02-19 21:01:05 +00:00
2024-07-29 17:08:03 -04:00
2025-03-18 16:21:25 +09:00
2024-02-19 21:01:05 +00:00
2021-12-07 08:34:25 -05:00
2023-01-30 15:08:27 -05:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2025-06-04 13:58:27 -04:00
2023-05-02 08:42:19 -04:00
2024-02-19 21:01:05 +00:00
2021-12-07 08:34:25 -05:00
2024-02-19 21:01:05 +00:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2023-06-13 15:46:56 +02:00
2023-09-08 17:49:25 -04:00
2023-09-19 16:52:13 -04:00
2024-02-19 21:01:05 +00:00
2023-09-19 16:52:13 -04:00
2023-09-19 16:52:13 -04:00
2025-06-04 13:58:27 -04:00
2025-06-04 13:58:27 -04:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2024-02-19 21:01:05 +00:00
2025-06-04 13:58:27 -04:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2023-02-07 22:59:30 -07:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2024-10-31 10:54:23 +00:00
2025-06-04 13:58:27 -04:00
2023-02-07 22:59:30 -07:00
2021-12-07 08:34:25 -05:00
2023-05-02 08:42:19 -04:00
2023-05-02 08:42:19 -04:00
2022-11-22 10:27:28 -05:00
2023-05-02 08:42:19 -04:00
2023-05-02 08:42:19 -04:00
2021-12-07 08:34:25 -05:00
2023-05-02 08:42:19 -04:00
2024-04-24 21:57:23 -06:00
2023-05-02 08:42:19 -04:00
2023-05-02 08:42:19 -04:00
2025-03-18 16:22:16 +09:00
2025-03-18 16:22:16 +09:00
2025-03-18 16:22:16 +09:00
2025-06-04 13:58:27 -04:00
2024-02-19 21:01:05 +00:00
2021-12-07 08:34:25 -05:00
2021-12-07 08:34:25 -05:00
2024-04-25 09:38:50 -06:00
2024-02-19 21:01:05 +00:00
2025-07-10 10:02:00 -04:00
2023-05-02 08:42:19 -04:00
2021-12-07 08:34:25 -05:00
2023-05-02 08:42:19 -04:00
2021-12-07 08:34:25 -05:00
2025-06-04 13:58:27 -04:00