VirtualBox

Changeset 104549 in vbox


Ignore:
Timestamp:
May 8, 2024 12:27:24 PM (7 months ago)
Author:
vboxsync
Message:

Runtime/common/fuzz: Some parfait warning fixes, bugref:3409

Location:
trunk/src/VBox/Runtime/common/fuzz
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/fuzz/fuzz-observer.cpp

    r99739 r104549  
    597597            uint32_t cbStateWr = (uint32_t)cbState;
    598598            rc = RTPipeWriteBlocking(pExecCtx->hPipeStdinW, &cbStateWr, sizeof(cbStateWr), NULL);
    599             rc = RTPipeWriteBlocking(pExecCtx->hPipeStdinW, pvState, cbState, NULL);
     599            if (RT_SUCCESS(rc))
     600                rc = RTPipeWriteBlocking(pExecCtx->hPipeStdinW, pvState, cbState, NULL);
    600601            if (RT_SUCCESS(rc))
    601602            {
     
    636637                                        else if (achBuf[i] == 'A')
    637638                                        {
    638                                             /** @todo Advance our fuzzer to get the added input. */
     639                                            while (cFuzzedInputs--)
     640                                            {
     641                                                RTFUZZINPUT hFuzzInput;
     642                                                rc = RTFuzzCtxInputGenerate(pThis->hFuzzCtx, &hFuzzInput);
     643                                                if (RT_SUCCESS(rc))
     644                                                    RTFuzzInputRelease(hFuzzInput);
     645                                            }
     646
     647                                            /* We should be at the input generated by the client now. */
     648                                            RTFUZZINPUT hFuzzInput;
     649                                            rc = RTFuzzCtxInputGenerate(pThis->hFuzzCtx, &hFuzzInput);
     650                                            if (RT_SUCCESS(rc))
     651                                                rc = RTFuzzInputAddToCtxCorpus(hFuzzInput);
    639652                                        }
    640653                                    }
     
    832845                AssertFailed();
    833846
    834             /*
    835              * Check whether we reached an unknown target state and add the input to the
    836              * corpus in that case.
    837              */
    838             rc = RTFuzzTgtStateAddToRecorder(pExecCtx->hTgtState);
    839847            if (RT_SUCCESS(rc))
    840848            {
    841                 /* Add to corpus and create a new target state for the next run. */
    842                 RTFuzzInputAddToCtxCorpus(hFuzzInput);
    843                 RTFuzzTgtStateRelease(pExecCtx->hTgtState);
    844                 pExecCtx->hTgtState = NIL_RTFUZZTGTSTATE;
    845                 rc = RTFuzzTgtRecorderCreateNewState(pThis->hTgtRec, &pExecCtx->hTgtState);
    846                 AssertRC(rc);
    847             }
    848             else
    849             {
    850                 Assert(rc == VERR_ALREADY_EXISTS);
    851                 /* Reset the state for the next run. */
    852                 rc = RTFuzzTgtStateReset(pExecCtx->hTgtState);
    853                 AssertRC(rc);
     849                /*
     850                 * Check whether we reached an unknown target state and add the input to the
     851                 * corpus in that case.
     852                 */
     853                rc = RTFuzzTgtStateAddToRecorder(pExecCtx->hTgtState);
     854                if (RT_SUCCESS(rc))
     855                {
     856                    /* Add to corpus and create a new target state for the next run. */
     857                    RTFuzzInputAddToCtxCorpus(hFuzzInput);
     858                    RTFuzzTgtStateRelease(pExecCtx->hTgtState);
     859                    pExecCtx->hTgtState = NIL_RTFUZZTGTSTATE;
     860                    rc = RTFuzzTgtRecorderCreateNewState(pThis->hTgtRec, &pExecCtx->hTgtState);
     861                    AssertRC(rc);
     862                }
     863                else
     864                {
     865                    Assert(rc == VERR_ALREADY_EXISTS);
     866                    /* Reset the state for the next run. */
     867                    rc = RTFuzzTgtStateReset(pExecCtx->hTgtState);
     868                    AssertRC(rc);
     869                }
    854870            }
    855871            RTFuzzInputRelease(hFuzzInput);
     
    10681084        else
    10691085            rc = VERR_BUFFER_OVERFLOW;
    1070         fSep = true;
     1086        /*fSep = true; Not used below currently. */
    10711087    }
    10721088
     
    13481364    int rc = VINF_SUCCESS;
    13491365    if (!cProcs)
    1350         cProcs = RT_MIN(RTMpGetPresentCoreCount(), sizeof(uint64_t) * 8);
     1366    {
     1367        cProcs = RTMpGetPresentCoreCount();
     1368        cProcs = RT_MIN(cProcs, sizeof(uint64_t) * 8);
     1369    }
    13511370
    13521371    rc = rtFuzzObsSetupSanitizerCfg(pThis);
  • trunk/src/VBox/Runtime/common/fuzz/fuzz-target-recorder.cpp

    r99739 r104549  
    346346        }
    347347
    348         rc = RTSemRWReleaseRead(pThis->hSemRwEdges); AssertRC(rc);
     348        int rc2 = RTSemRWReleaseRead(pThis->hSemRwEdges); AssertRC(rc2);
     349        if (   RT_FAILURE(rc2)
     350            && RT_SUCCESS(rc))
     351            rc = rc2;
    349352    }
    350353
  • trunk/src/VBox/Runtime/common/fuzz/fuzzmastercmd.cpp

    r99739 r104549  
    474474                            RTJsonValueRelease(hVal);
    475475                        }
     476                        if (RT_FAILURE(rc))
     477                            break;
    476478                        rc = RTJsonIteratorNext(hEnvIt);
    477479                    } while (RT_SUCCESS(rc));
     
    549551                    RTJsonValueRelease(hVal);
    550552                }
     553                if (RT_FAILURE(rc))
     554                    break;
     555
    551556                rc = RTJsonIteratorNext(hSanIt);
    552557            } while (RT_SUCCESS(rc));
     
    984989                    RTJsonValueRelease(hVal);
    985990                }
     991                if (RT_FAILURE(rc))
     992                    break;
     993
    986994                rc = RTJsonIteratorNext(hTgtIt);
    987995            } while (RT_SUCCESS(rc));
     
    17881796        /* Option variables:  */
    17891797        bool fDaemonize = false;
    1790         bool fDaemonized = false;
    17911798        const char *pszLoadCfg = NULL;
    17921799        RTFUZZCMDMASTER This;
     
    18331840
    18341841                case 'Z':
    1835                     fDaemonized = true;
    18361842                    fDaemonize = false;
    18371843                    break;
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