| 431 | } |
| 432 | |
| 433 | static void |
| 434 | HandleVlaBoundNotPositive(bool isFatal, struct CVLABoundData *pData, unsigned long ulBound) |
| 435 | { |
| 436 | char szLocation[LOCATION_MAXLEN]; |
| 437 | char szBound[NUMBER_MAXLEN]; |
| 438 | |
| 439 | ASSERT(pData); |
| 440 | |
| 441 | if (isAlreadyReported(&pData->mLocation)) |
| 442 | return; |
| 443 | |
| 444 | DeserializeLocation(szLocation, LOCATION_MAXLEN, &pData->mLocation); |
| 445 | DeserializeNumber(szLocation, szBound, NUMBER_MAXLEN, pData->mType, ulBound); |
| 446 | |
| 447 | Report(isFatal, "UBSan: Undefined Behavior in %s, variable length array bound value %s <= 0\n", |
| 448 | szLocation, szBound); |
| 449 | } |
| 450 | |
| 451 | static void |
| 452 | HandleOutOfBounds(bool isFatal, struct COutOfBoundsData *pData, unsigned long ulIndex) |
no test coverage detected