From a039688121a6fd4ad6424c5baa8143bb0eaebe50 Mon Sep 17 00:00:00 2001 From: Li Xi Date: Mon, 27 Oct 2014 21:54:25 +0800 Subject: [PATCH] LU-5808 llog: check name strictly to avoid invalid record Records for a file system cound be written to llog of another file system by mistake if the name of the former one is the prefix of the latter one. This patch fixes the problem by using more strict checking of llog name. Signed-off-by: Li Xi Change-Id: If45c59b0226b71e8a95f9aa719eae8412c89a2f1 Reviewed-on: http://review.whamcloud.com/12437 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin Reviewed-by: Mike Pershin --- lustre/mgs/mgs_llog.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lustre/mgs/mgs_llog.c b/lustre/mgs/mgs_llog.c index 60a0685..c47208b 100644 --- a/lustre/mgs/mgs_llog.c +++ b/lustre/mgs/mgs_llog.c @@ -1469,7 +1469,9 @@ int mgs_write_log_direct_all(const struct lu_env *env, struct mgs_device *mgs, if (server_only && strstr(dirent->mde_name, "-client") != NULL) goto next; - if (strncmp(fsname, dirent->mde_name, len) != 0) + if (strlen(dirent->mde_name) <= len || + strncmp(fsname, dirent->mde_name, len) != 0 || + dirent->mde_name[len] != '-') goto next; CDEBUG(D_MGS, "Changing log %s\n", dirent->mde_name); -- 1.8.3.1