[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v12 for-xen-4.5 01/20] common/symbols: Export hypervisor symbols to privileged guest
On 09/26/2014 05:43 PM, Daniel De Graaf wrote: @@ -601,6 +602,38 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)} break; + case XENPF_get_symbol: + {+ static char name[KSYM_NAME_LEN + 1]; /* protected by xenpf_lock */+ XEN_GUEST_HANDLE(char) nameh; + uint32_t namelen, copylen; + + guest_from_compat_handle(nameh, op->u.symdata.name); + + ret = xensyms_read(&op->u.symdata.symnum, &op->u.symdata.type, + &op->u.symdata.address, name); + + namelen = strlen(name) + 1; + + if ( namelen > op->u.symdata.namelen ) + { + /* Caller's buffer is too small for the whole string */ + if ( op->u.symdata.namelen ) + name[op->u.symdata.namelen] = '\0';I don't think this assignment is needed at all: name[copylen] is never copied to the guest and the buffer is not reused internally. True, this is not needed. Thanks. -boris + copylen = op->u.symdata.namelen; + } + else + copylen = namelen; + + op->u.symdata.namelen = namelen; + + if ( !ret && copy_to_guest(nameh, name, copylen) ) + ret = -EFAULT; + if ( !ret && __copy_field_to_guest(u_xenpf_op, op, u.symdata) ) + ret = -EFAULT; + } + break; + default: ret = -ENOSYS; break;[...] _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |