MCPcopy Create free account
hub / github.com/CloverHackyColor/CloverBootloader / HandleOverflow

Function HandleOverflow

Library/OcGuardLib/Ubsan.c:354–372  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

352static void HandlePointerOverflow(bool isFatal, struct CPointerOverflowData *pData, unsigned long ulBase, unsigned long ulResult);
353
354static void
355HandleOverflow(bool isFatal, struct COverflowData *pData, unsigned long ulLHS, unsigned long ulRHS, const char *szOperation)
356{
357 char szLocation[LOCATION_MAXLEN];
358 char szLHS[NUMBER_MAXLEN];
359 char szRHS[NUMBER_MAXLEN];
360
361 ASSERT(pData);
362
363 if (isAlreadyReported(&pData->mLocation))
364 return;
365
366 DeserializeLocation(szLocation, LOCATION_MAXLEN, &pData->mLocation);
367 DeserializeNumber(szLocation, szLHS, NUMBER_MAXLEN, pData->mType, ulLHS);
368 DeserializeNumber(szLocation, szRHS, NUMBER_MAXLEN, pData->mType, ulRHS);
369
370 Report(isFatal, "UBSan: Undefined Behavior in %s, %s integer overflow: %s %s %s cannot be represented in type %s\n",
371 szLocation, ISSET(pData->mType->mTypeInfo, NUMBER_SIGNED_BIT) ? "signed" : "unsigned", szLHS, szOperation, szRHS, pData->mType->mTypeName);
372}
373
374static void
375HandleNegateOverflow(bool isFatal, struct COverflowData *pData, unsigned long ulOldValue)

Calls 4

isAlreadyReportedFunction · 0.85
DeserializeLocationFunction · 0.85
DeserializeNumberFunction · 0.85
ReportFunction · 0.70

Tested by

no test coverage detected