MCPcopy Create free account
hub / github.com/F-Stack/f-stack / HandleOverflow

Function HandleOverflow

freebsd/kern/kern_ubsan.c:350–368  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Calls 4

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

Tested by

no test coverage detected