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

Function DeserializeNumberFloat

Library/OcGuardLib/Ubsan.c:1570–1608  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1568
1569#ifndef _KERNEL
1570static void
1571DeserializeNumberFloat(char *szLocation, char *pBuffer, size_t zBUfferLength, struct CTypeDescriptor *pType, unsigned long ulNumber)
1572{
1573 size_t zNumberWidth;
1574
1575 ASSERT(szLocation);
1576 ASSERT(pBuffer);
1577 ASSERT(zBUfferLength > 0);
1578 ASSERT(pType);
1579 ASSERT(pType->mTypeKind == KIND_FLOAT);
1580
1581 zNumberWidth = zDeserializeTypeWidth(pType);
1582 switch (zNumberWidth) {
1583 default:
1584 Report(true, "UBSan: Unexpected %zu-Bit Type in %s\n", zNumberWidth, szLocation);
1585 __unreachable();
1586 /* NOTREACHED */
1587#ifdef __HAVE_LONG_DOUBLE
1588 case WIDTH_128:
1589 /* FALLTHROUGH */
1590 case WIDTH_96:
1591 /* FALLTHROUGH */
1592 case WIDTH_80:
1593 DeserializeFloatOverPointer(pBuffer, zBUfferLength, pType, REINTERPRET_CAST(unsigned long *, ulNumber));
1594 break;
1595#endif
1596 case WIDTH_64:
1597 if (sizeof(ulNumber) * CHAR_BIT < WIDTH_64) {
1598 DeserializeFloatOverPointer(pBuffer, zBUfferLength, pType, REINTERPRET_CAST(unsigned long *, ulNumber));
1599 break;
1600 }
1601 /* FALLTHROUGH */
1602 case WIDTH_32:
1603 /* FALLTHROUGH */
1604 case WIDTH_16:
1605 DeserializeFloatInlined(pBuffer, zBUfferLength, pType, ulNumber);
1606 break;
1607 }
1608}
1609#endif
1610
1611static void

Callers 1

DeserializeNumberFunction · 0.85

Calls 4

zDeserializeTypeWidthFunction · 0.85
DeserializeFloatInlinedFunction · 0.85
ReportFunction · 0.70

Tested by

no test coverage detected