diff -r 9dd91e9691a2 xen/include/xsm/xsm.h --- a/xen/include/xsm/xsm.h Sat Apr 02 15:58:54 2011 +0100 +++ b/xen/include/xsm/xsm.h Mon Apr 04 09:19:26 2011 -0400 @@ -427,7 +427,11 @@ static inline long __do_xsm_op (XEN_GUEST_HANDLE(xsm_op_t) op) { - return xsm_call(__do_xsm_op(op)); +#ifdef XSM_ENABLE + return xsm_ops->__do_xsm_op(op); +#else + return -ENOSYS; +#endif } #ifdef XSM_ENABLE diff -r 9dd91e9691a2 xen/xsm/flask/flask_op.c --- a/xen/xsm/flask/flask_op.c Sat Apr 02 15:58:54 2011 +0100 +++ b/xen/xsm/flask/flask_op.c Mon Apr 04 09:19:26 2011 -0400 @@ -485,6 +485,9 @@ if ( length < 0 ) goto out; + if (len > count) + return -ERANGE; + memset(buf, 0, count); memcpy(buf, context, len); length = len;