From: Mikhail Pershin Date: Sat, 25 Oct 2014 05:23:41 +0000 (-0700) Subject: LU-2059 mgs: fix a bug in mgs_llog_open X-Git-Tag: 2.5.3.90~68 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=refs%2Fchanges%2F28%2F12428%2F2;p=fs%2Flustre-release.git LU-2059 mgs: fix a bug in mgs_llog_open - don't calculate len for NULL ptr - check the logname is PARAMS_FILENAME inside 'if (ptr == NULL ...) clause so all cases with NULL ptr will end there. This patch is back-ported from the following one: Lustre-commit: 8c21986e79f50131b0f381e5fe0311294328d660 Lustre-change: http://review.whamcloud.com/10589 Signed-off-by: Mikhail Pershin Change-Id: Ic69866e91acad7920085848faf12c69bf3d17f12 Reviewed-on: http://review.whamcloud.com/12428 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Hongchao Zhang --- diff --git a/lustre/mgs/mgs_handler.c b/lustre/mgs/mgs_handler.c index fcaf37e..8c6a3a3 100644 --- a/lustre/mgs/mgs_handler.c +++ b/lustre/mgs/mgs_handler.c @@ -537,12 +537,14 @@ static int mgs_llog_open(struct tgt_session_info *tsi) logname = req_capsule_client_get(tsi->tsi_pill, &RMF_NAME); if (logname) { char *ptr = strchr(logname, '-'); - int len = (int)(ptr - logname); + int len = (ptr != NULL) ? (int)(ptr - logname) : 0; - if ((ptr == NULL && strcmp(logname, PARAMS_FILENAME) != 0) || - len >= sizeof(mgi->mgi_fsname)) { - LCONSOLE_WARN("%s: non-config logname received: %s\n", - tgt_name(tsi->tsi_tgt), logname); + if (ptr == NULL || len >= sizeof(mgi->mgi_fsname)) { + if (strcmp(logname, PARAMS_FILENAME) != 0) + LCONSOLE_WARN("%s: non-config logname " + "received: %s\n", + tgt_name(tsi->tsi_tgt), + logname); /* not error, this can be llog test name */ } else { strncpy(mgi->mgi_fsname, logname, len);