From 05202734be03d8fd65bb6df298f3ceaf58ee5995 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Tue, 23 Aug 2022 21:19:10 +0200 Subject: Hardlink search: report error if cannonicalization fails Signed-off-by: David Oberhollenzer --- lib/common/hardlink.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/common/hardlink.c b/lib/common/hardlink.c index 4657bc3..e43df33 100644 --- a/lib/common/hardlink.c +++ b/lib/common/hardlink.c @@ -32,7 +32,7 @@ static int map_nodes(rbtree_t *inumtree, sqfs_hard_link_t **out, } if (!is_filename_sane((const char *)n->name, false)) - return 0; + return SQFS_ERROR_CORRUPTED; idx = n->inode->base.inode_number; tn = rbtree_lookup(inumtree, &idx); @@ -53,13 +53,14 @@ static int map_nodes(rbtree_t *inumtree, sqfs_hard_link_t **out, return ret; } - if (canonicalize_name(lnk->target) == 0) { - lnk->next = (*out); - (*out) = lnk; - } else { + if (canonicalize_name(lnk->target) != 0) { sqfs_free(lnk->target); free(lnk); + return SQFS_ERROR_CORRUPTED; } + + lnk->next = (*out); + (*out) = lnk; return 0; } -- cgit v1.2.3