Message ID | 20190114133134.18374-1-fdmanana@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/3] Btrfs-progs: fix mount point detection due to partial prefix match | expand |
On Mon, 14 Jan 2019 13:31:34 +0000, fdmanana@kernel.org wrote: > From: Filipe Manana <fdmanana@suse.com> > > The strdup() function can fail, in which case it returns NULL and sets > errno [1]. Therefore add the missing error check after calling strdup() > at find_mount_root(). > > [1] - http://man7.org/linux/man-pages/man3/strdup.3p.html > > Signed-off-by: Filipe Manana <fdmanana@suse.com> > --- > utils.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) Looks good: Reviewed-by: David Disseldorp <ddiss@suse.de>
diff --git a/utils.c b/utils.c index 6616630b..3bc6bc3b 100644 --- a/utils.c +++ b/utils.c @@ -2048,7 +2048,7 @@ int find_mount_root(const char *path, char **mount_root) int fd; struct mntent *ent; int len; - int ret; + int ret = 0; int not_btrfs = 1; int longest_matchlen = 0; char *longest_match = NULL; @@ -2071,12 +2071,18 @@ int find_mount_root(const char *path, char **mount_root) free(longest_match); longest_matchlen = len; longest_match = strdup(ent->mnt_dir); + if (!longest_match) { + ret = -errno; + break; + } not_btrfs = strcmp(ent->mnt_type, "btrfs"); } } } endmntent(mnttab); + if (ret) + return ret; if (!longest_match) return -ENOENT; if (not_btrfs) {