From: Li Xi Date: Mon, 27 Oct 2014 13:54:25 +0000 (+0800) Subject: LU-5808 llog: check name strictly to avoid invalid record X-Git-Tag: 2.6.91~26 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=a039688121a6fd4ad6424c5baa8143bb0eaebe50;p=fs%2Flustre-release.git 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 --- 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);