From: Yunchuan Wen Date: Wed, 10 Dec 2014 07:07:38 +0000 (+0800) Subject: mds: fix parse_quota_vxattr for invalid data X-Git-Tag: v0.91~21^2^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=31a0cdc6aca870f168aa4e5eaadd0c9a52f584eb;p=ceph.git mds: fix parse_quota_vxattr for invalid data Signed-off-by: Yunchuan Wen --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 521f5ff92b61..bc6423a61674 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -3744,9 +3744,15 @@ int Server::parse_quota_vxattr(string name, string value, quota_info_t *quota) return r; } } else if (name == "quota.max_bytes") { - quota->max_bytes = boost::lexical_cast(value); + int64_t q = boost::lexical_cast(value); + if (q < 0) + return -EINVAL; + quota->max_bytes = q; } else if (name == "quota.max_files") { - quota->max_files = boost::lexical_cast(value); + int64_t q = boost::lexical_cast(value); + if (q < 0) + return -EINVAL; + quota->max_files = q; } else { dout(10) << " unknown quota vxattr " << name << dendl; return -EINVAL;