In the ldiskfs osd_xattr_get() remove an assertion on the size of the
supplied buffer and add normal handling.
Signed-off-by: John L. Hammond <john.hammond@intel.com>
Change-Id: Ie4d3b4ab6dd1e8328404d1f8e5b403130b62e64a
Reviewed-on: http://review.whamcloud.com/11649
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Mike Pershin <mike.pershin@intel.com>
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
if (strcmp(name, XATTR_NAME_VERSION) == 0) {
/* for version we are just using xattr API but change inode
* field instead */
- LASSERT(buf->lb_len == sizeof(dt_obj_version_t));
- osd_object_version_get(env, dt, buf->lb_buf);
- return sizeof(dt_obj_version_t);
+ if (buf->lb_len == 0)
+ return sizeof(dt_obj_version_t);
+
+ if (buf->lb_len < sizeof(dt_obj_version_t))
+ return -ERANGE;
+
+ osd_object_version_get(env, dt, buf->lb_buf);
+
+ return sizeof(dt_obj_version_t);
}
LASSERT(dt_object_exists(dt) && !dt_object_remote(dt));