summaryrefslogtreecommitdiff
path: root/src/libotutil
diff options
context:
space:
mode:
authorMatthew Leeds <matthew.leeds@endlessm.com>2017-10-13 14:49:07 -0700
committerAtomic Bot <atomic-devel@projectatomic.io>2017-10-14 00:47:40 +0000
commit2a9c5efe1d10b79681b0ee638994ead375be6597 (patch)
tree98577d2f79d260abf77d6d92c35715084f9ab8b5 /src/libotutil
parenta1986b1a8083ef4f840973f1c73d932a52e43644 (diff)
downloadostree-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.c2
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;
}