aboutsummaryrefslogtreecommitdiffstats
path: root/unix/vncconfig/vncExt.c
diff options
context:
space:
mode:
Diffstat (limited to 'unix/vncconfig/vncExt.c')
-rw-r--r--unix/vncconfig/vncExt.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/unix/vncconfig/vncExt.c b/unix/vncconfig/vncExt.c
index 4ec671b8..482af829 100644
--- a/unix/vncconfig/vncExt.c
+++ b/unix/vncconfig/vncExt.c
@@ -55,22 +55,26 @@ Bool XVncExtQueryExtension(Display* dpy, int* event_basep, int* error_basep)
return True;
}
-Bool XVncExtSetParam(Display* dpy, const char* param)
+Bool XVncExtSetParam(Display* dpy, const char* param, const char* value)
{
xVncExtSetParamReq* req;
xVncExtSetParamReply rep;
int paramLen = strlen(param);
- if (paramLen > 255) return False;
+ if (paramLen > 65535) return False;
+ int valueLen = strlen(value);
+ if (valueLen > 65535) return False;
if (!checkExtension(dpy)) return False;
LockDisplay(dpy);
GetReq(VncExtSetParam, req);
req->reqType = codes->major_opcode;
req->vncExtReqType = X_VncExtSetParam;
- req->length += (paramLen + 3) >> 2;
+ req->length += ((paramLen + 3) >> 2) + ((valueLen + 3) >> 2);
req->paramLen = paramLen;
+ req->valueLen = valueLen;
Data(dpy, param, paramLen);
+ Data(dpy, value, valueLen);
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
UnlockDisplay(dpy);
SyncHandle();