VirtualBox

Ignore:
Timestamp:
Dec 5, 2023 10:37:41 AM (16 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
160611
Message:

Shared Clipboard: Added a dedicated event type for the X11 requests/responses. Needed for union access. Added some more checks. ​bugref:10384

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/SharedClipboard/clipboard-x11.cpp

    r102465 r102468  
    19801980
    19811981    PSHCLX11REQUEST pReq = (PSHCLX11REQUEST)pvUserData;
     1982    AssertReturnVoid(pReq->enmType == SHCLX11EVENTTYPE_REPORT_FORMATS);
    19821983
    19831984    PSHCLX11CTX pCtx     = pReq->pCtx;
     
    20202021    if (pReq)
    20212022    {
     2023        pReq->enmType          = SHCLX11EVENTTYPE_REPORT_FORMATS;
    20222024        pReq->pCtx             = pCtx;
    20232025        pReq->Formats.fFormats = uFormats;
     
    21212123
    21222124    /* Sanity. */
     2125    AssertReturnVoid(pReq->enmType == SHCLX11EVENTTYPE_READ);
    21232126    AssertReturnVoid(pReq->Read.uFmtVBox != VBOX_SHCL_FMT_NONE);
    21242127    AssertReturnVoid(pReq->Read.idxFmtX11 < SHCL_MAX_X11_FORMATS);
     
    23792382        if (pReq) /* Give some more clues, if available. */
    23802383        {
     2384            AssertReturnVoid(pReq->enmType == SHCLX11EVENTTYPE_READ);
    23812385            char *pszFmts = ShClFormatsToStrA(pReq->Read.uFmtVBox);
    23822386            AssertPtrReturnVoid(pszFmts);
     
    24752479
    24762480    PSHCLX11REQUEST   pReq = (PSHCLX11REQUEST)pvUserData;
     2481    AssertReturnVoid(pReq->enmType == SHCLX11EVENTTYPE_READ);
    24772482    SHCLX11CTX       *pCtx = pReq->pCtx;
    24782483    AssertPtrReturnVoid(pCtx);
     
    25822587    if (pReq)
    25832588    {
     2589        pReq->enmType       = SHCLX11EVENTTYPE_READ;
    25842590        pReq->pCtx          = pCtx;
    25852591        pReq->Read.uFmtVBox = uFmt;
     
    26362642                if (pPayload)
    26372643                {
    2638                     Assert(pPayload->cbData == sizeof(SHCLX11RESPONSE));
     2644                    AssertReturn(pPayload->cbData == sizeof(SHCLX11RESPONSE), VERR_INVALID_PARAMETER);
     2645                    AssertPtrReturn(pPayload->pvData, VERR_INVALID_POINTER);
    26392646                    PSHCLX11RESPONSE pResp = (PSHCLX11RESPONSE)pPayload->pvData;
     2647                    AssertReturn(pResp->enmType == SHCLX11EVENTTYPE_READ, VERR_INVALID_PARAMETER);
    26402648
    26412649                    memcpy(pvBuf, pResp->Read.pvData, RT_MIN(cbBuf, pResp->Read.cbData));
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette