VirtualBox

Changeset 79369 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jun 26, 2019 6:00:52 PM (6 years ago)
Author:
vboxsync
Message:

Main/GuestProcessImpl.cpp: Check flags passed to write* and WaitFor*. bugref:9320

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp

    r79283 r79369  
    18661866    LogFlowThisFuncEnter();
    18671867
     1868    /* Validate flags: */
     1869    static ULONG const s_fValidFlags = ProcessWaitForFlag_None   | ProcessWaitForFlag_Start  | ProcessWaitForFlag_Terminate
     1870                                     | ProcessWaitForFlag_StdIn  | ProcessWaitForFlag_StdOut | ProcessWaitForFlag_StdErr;
     1871    if (aWaitFor & ~s_fValidFlags)
     1872        return setErrorBoth(E_INVALIDARG, VERR_INVALID_FLAGS, tr("Flags value %#x, invalid: %#x"),
     1873                            aWaitFor, aWaitFor & ~s_fValidFlags);
     1874
    18681875    /*
    18691876     * Note: Do not hold any locks here while waiting!
     
    19141921                            ULONG aTimeoutMS, ULONG *aWritten)
    19151922{
     1923    static ULONG const s_fValidFlags = ProcessInputFlag_None | ProcessInputFlag_EndOfFile;
     1924    if (aFlags & ~s_fValidFlags)
     1925        return setErrorBoth(E_INVALIDARG, VERR_INVALID_FLAGS, tr("Flags value %#x, invalid: %#x"),
     1926                            aFlags, aFlags & ~s_fValidFlags);
     1927
    19161928    AutoCaller autoCaller(this);
    19171929    if (FAILED(autoCaller.rc())) return autoCaller.rc();
     
    19221934
    19231935    uint32_t cbWritten;
    1924     int rcGuest = VERR_IPE_UNINITIALIZED_STATUS;
    1925     uint32_t cbData = (uint32_t)aData.size();
    1926     void *pvData = cbData > 0? (void *)&aData.front(): NULL;
     1936    int      rcGuest = VERR_IPE_UNINITIALIZED_STATUS;
     1937    uint32_t cbData  = (uint32_t)aData.size();
     1938    void    *pvData  = cbData > 0 ? (void *)&aData.front() : NULL;
    19271939    int vrc = i_writeData(aHandle, aFlags, pvData, cbData, aTimeoutMS, &cbWritten, &rcGuest);
    19281940    if (RT_FAILURE(vrc))
Note: See TracChangeset for help on using the changeset viewer.

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