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

Function llluGetNumber

Library/OcGuardLib/Ubsan.c:1528–1567  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1526}
1527
1528static ulongest
1529llluGetNumber(char *szLocation, struct CTypeDescriptor *pType, unsigned long ulNumber)
1530{
1531 size_t zNumberWidth;
1532 ulongest UL = 0;
1533
1534 ASSERT(pType);
1535
1536 zNumberWidth = zDeserializeTypeWidth(pType);
1537 switch (zNumberWidth) {
1538 default:
1539 Report(true, "UBSan: Unexpected %zu-Bit Type in %s\n", zNumberWidth, szLocation);
1540 __unreachable();
1541 /* NOTREACHED */
1542 case WIDTH_128:
1543#ifdef __SIZEOF_INT128__
1544 memcpy(&UL, REINTERPRET_CAST(ulongest *, ulNumber), sizeof(ulongest));
1545 break;
1546#else
1547 Report(true, "UBSan: Unexpected 128-Bit Type in %s\n", szLocation);
1548 __unreachable();
1549 /* NOTREACHED */
1550#endif
1551 case WIDTH_64:
1552 if (sizeof(ulNumber) * CHAR_BIT < WIDTH_64) {
1553 UL = *REINTERPRET_CAST(uint64_t *, ulNumber);
1554 break;
1555 }
1556 /* FALLTHROUGH */
1557 case WIDTH_32:
1558 /* FALLTHROUGH */
1559 case WIDTH_16:
1560 /* FALLTHROUGH */
1561 case WIDTH_8:
1562 UL = ulNumber;
1563 break;
1564 }
1565
1566 return UL;
1567}
1568
1569#ifndef _KERNEL
1570static void

Callers 2

DeserializeNumberFunction · 0.85
isShiftExponentTooLargeFunction · 0.85

Calls 3

zDeserializeTypeWidthFunction · 0.85
ReportFunction · 0.70
memcpyFunction · 0.50

Tested by

no test coverage detected