|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 2/4] libxc: drop size parameter from xc_flask_context_to_sid()
Nul-terminated strings are passed in all cases, so the strlen() can very
well be invoked by the function itself. In preparation for a hypervisor
change also include the nul terminator in the size calculation.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
Ideally libxl_flask_context_to_sid() would follow suit, but aiui doing so
would break its (stable) ABI.
Of course the casts in xc_flask_access() are suspicious.
--- a/tools/helpers/init-xenstore-domain.c
+++ b/tools/helpers/init-xenstore-domain.c
@@ -108,7 +108,7 @@ static int build(xc_interface *xch)
if ( flask )
{
- rv = xc_flask_context_to_sid(xch, flask, strlen(flask),
&config.ssidref);
+ rv = xc_flask_context_to_sid(xch, flask, &config.ssidref);
if ( rv )
{
fprintf(stderr, "xc_flask_context_to_sid failed\n");
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2372,7 +2372,7 @@ long xc_sharing_used_frames(xc_interface
/*** End sharing interface ***/
int xc_flask_load(xc_interface *xc_handle, char *buf, uint32_t size);
-int xc_flask_context_to_sid(xc_interface *xc_handle, char *buf, uint32_t size,
uint32_t *sid);
+int xc_flask_context_to_sid(xc_interface *xc_handle, char *buf, uint32_t *sid);
int xc_flask_sid_to_context(xc_interface *xc_handle, int sid, char *buf,
uint32_t size);
int xc_flask_getenforce(xc_interface *xc_handle);
int xc_flask_setenforce(xc_interface *xc_handle, int mode);
--- a/tools/libs/ctrl/xc_flask.c
+++ b/tools/libs/ctrl/xc_flask.c
@@ -83,10 +83,11 @@ int xc_flask_load(xc_interface *xch, cha
return err;
}
-int xc_flask_context_to_sid(xc_interface *xch, char *buf, uint32_t size,
uint32_t *sid)
+int xc_flask_context_to_sid(xc_interface *xch, char *buf, uint32_t *sid)
{
int err;
struct xen_flask_op op = {};
+ size_t size = strlen(buf) + 1;
DECLARE_HYPERCALL_BOUNCE(buf, size, XC_HYPERCALL_BUFFER_BOUNCE_IN);
if ( xc_hypercall_bounce_pre(xch, buf) )
@@ -247,7 +248,7 @@ static int xc_flask_add(xc_interface *xc
int err;
struct xen_flask_op op = {};
- err = xc_flask_context_to_sid(xch, scontext, strlen(scontext), &sid);
+ err = xc_flask_context_to_sid(xch, scontext, &sid);
if ( err )
return err;
@@ -323,10 +324,10 @@ int xc_flask_access(xc_interface *xch, c
struct xen_flask_op op = {};
int err;
- err = xc_flask_context_to_sid(xch, (char*)scon, strlen(scon),
&op.u.access.ssid);
+ err = xc_flask_context_to_sid(xch, (char*)scon, &op.u.access.ssid);
if ( err )
return err;
- err = xc_flask_context_to_sid(xch, (char*)tcon, strlen(tcon),
&op.u.access.tsid);
+ err = xc_flask_context_to_sid(xch, (char*)tcon, &op.u.access.tsid);
if ( err )
return err;
--- a/tools/libs/light/libxl_flask.c
+++ b/tools/libs/light/libxl_flask.c
@@ -21,7 +21,8 @@ int libxl_flask_context_to_sid(libxl_ctx
{
int rc;
- rc = xc_flask_context_to_sid(ctx->xch, buf, len, ssidref);
+ assert(len == strlen(buf));
+ rc = xc_flask_context_to_sid(ctx->xch, buf, ssidref);
return rc;
}
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -1754,7 +1754,7 @@ static PyObject *pyflask_context_to_sid(
return PyErr_SetFromErrno(xc_error_obj);
}
- ret = xc_flask_context_to_sid(xc_handle, ctx, strlen(ctx), &sid);
+ ret = xc_flask_context_to_sid(xc_handle, ctx, &sid);
xc_interface_close(xc_handle);
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |