[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
- To: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>, jbeulich@xxxxxxxx, kevin.tian@xxxxxxxxx, suravee.suthikulpanit@xxxxxxx, Aravind.Gopalakrishnan@xxxxxxx, dietmar.hahn@xxxxxxxxxxxxxx
- From: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
- Date: Fri, 26 Sep 2014 18:12:37 -0400
- Cc: andrew.cooper3@xxxxxxxxxx, xen-devel@xxxxxxxxxxxxx, keir@xxxxxxx, jun.nakajima@xxxxxxxxx, tim@xxxxxxx
- Delivery-date: Fri, 26 Sep 2014 22:11:44 +0000
- List-id: Xen developer discussion <xen-devel.lists.xen.org>
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
|