diff options
author | Matthew Leeds <matthew.leeds@endlessm.com> | 2017-10-13 14:49:07 -0700 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2017-10-14 00:47:40 +0000 |
commit | 2a9c5efe1d10b79681b0ee638994ead375be6597 (patch) | |
tree | 98577d2f79d260abf77d6d92c35715084f9ab8b5 /src/libotutil | |
parent | a1986b1a8083ef4f840973f1c73d932a52e43644 (diff) | |
download | ostree-2a9c5efe1d10b79681b0ee638994ead375be6597.tar.gz |
lib/utils: Check for invalid UTF-8 in filenames
In case a filename contains invalid UTF-8 characters, libostree will
pass it to g_variant_builder_add() in create_tree_variant_from_hashes()
anyway, which leads to a critical warning from glib and an invalid
commit. This commit makes ostree print a useful error and exit instead.
Closes: #1271
Approved by: cgwalters
Diffstat (limited to 'src/libotutil')
-rw-r--r-- | src/libotutil/ot-unix-utils.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libotutil/ot-unix-utils.c b/src/libotutil/ot-unix-utils.c index 3590de29..d05c8926 100644 --- a/src/libotutil/ot-unix-utils.c +++ b/src/libotutil/ot-unix-utils.c @@ -47,6 +47,8 @@ ot_util_filename_validate (const char *name, return glnx_throw (error, "Invalid path uplink filename '..'"); if (strchr (name, '/') != NULL) return glnx_throw (error, "Invalid / in filename %s", name); + if (!g_utf8_validate (name, -1, NULL)) + return glnx_throw (error, "Invalid UTF-8 in filename %s", name); return TRUE; } |