Lines Matching full:load
196 return malformedError("load command " + Twine(LoadCommandIndex) +
199 return malformedError("load command " + Twine(LoadCommandIndex) +
211 return malformedError("load command 0 extends past the end all load "
225 return malformedError("load command " + Twine(LoadCommandIndex + 1) +
226 " extends past the end all load commands in the file");
281 // Parses LC_SEGMENT or LC_SEGMENT_64 load command, adds addresses of all
286 const MachOObjectFile &Obj, const MachOObjectFile::LoadCommandInfo &Load,
291 if (Load.C.cmdsize < SegmentLoadSize)
292 return malformedError("load command " + Twine(LoadCommandIndex) +
294 if (auto SegOrErr = getStructOrErr<Segment>(Obj, Load.Ptr)) {
299 S.nsects * SectionSize > Load.C.cmdsize - SegmentLoadSize)
300 return malformedError("load command " + Twine(LoadCommandIndex) +
304 const char *Sec = getSectionPtr(Obj, Load, J);
389 return malformedError("load command " + Twine(LoadCommandIndex) +
395 return malformedError("load command " + Twine(LoadCommandIndex) +
399 return malformedError("load command " + Twine(LoadCommandIndex) +
410 const MachOObjectFile::LoadCommandInfo &Load,
414 if (Load.C.cmdsize < sizeof(MachO::symtab_command))
415 return malformedError("load command " + Twine(LoadCommandIndex) +
419 auto SymtabOrErr = getStructOrErr<MachO::symtab_command>(Obj, Load.Ptr);
463 *SymtabLoadCmd = Load.Ptr;
468 const MachOObjectFile::LoadCommandInfo &Load,
472 if (Load.C.cmdsize < sizeof(MachO::dysymtab_command))
473 return malformedError("load command " + Twine(LoadCommandIndex) +
478 getStructOrErr<MachO::dysymtab_command>(Obj, Load.Ptr);
596 *DysymtabLoadCmd = Load.Ptr;
601 const MachOObjectFile::LoadCommandInfo &Load,
606 if (Load.C.cmdsize < sizeof(MachO::linkedit_data_command))
607 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
612 getStructOrErr<MachO::linkedit_data_command>(Obj, Load.Ptr);
634 *LoadCmd = Load.Ptr;
639 const MachOObjectFile::LoadCommandInfo &Load,
643 if (Load.C.cmdsize < sizeof(MachO::dyld_info_command))
644 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
650 getStructOrErr<MachO::dyld_info_command>(Obj, Load.Ptr);
733 *LoadCmd = Load.Ptr;
738 const MachOObjectFile::LoadCommandInfo &Load,
740 if (Load.C.cmdsize < sizeof(MachO::dylib_command))
741 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
743 auto CommandOrErr = getStructOrErr<MachO::dylib_command>(Obj, Load.Ptr);
748 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
752 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
754 "of the load command");
756 // the end of the load command.
758 const char *P = (const char *)Load.Ptr;
763 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
765 "load command");
770 const MachOObjectFile::LoadCommandInfo &Load,
773 if (Error Err = checkDylibCommand(Obj, Load, LoadCommandIndex,
780 return malformedError("LC_ID_DYLIB load command in non-dynamic library "
782 *LoadCmd = Load.Ptr;
787 const MachOObjectFile::LoadCommandInfo &Load,
789 if (Load.C.cmdsize < sizeof(MachO::dylinker_command))
790 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
792 auto CommandOrErr = getStructOrErr<MachO::dylinker_command>(Obj, Load.Ptr);
797 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
801 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
803 "of the load command");
805 // the end of the load command.
807 const char *P = (const char *)Load.Ptr;
812 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
814 "load command");
819 const MachOObjectFile::LoadCommandInfo &Load,
822 if (Load.C.cmdsize != sizeof(MachO::version_min_command))
823 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
829 *LoadCmd = Load.Ptr;
834 const MachOObjectFile::LoadCommandInfo &Load,
837 if (Load.C.cmdsize != sizeof(MachO::note_command))
838 return malformedError("load command " + Twine(LoadCommandIndex) +
840 auto NoteCmdOrErr = getStructOrErr<MachO::note_command>(Obj, Load.Ptr);
863 const MachOObjectFile::LoadCommandInfo &Load,
867 getStructOrErr<MachO::build_version_command>(Obj, Load.Ptr);
871 if (Load.C.cmdsize !=
874 return malformedError("load command " + Twine(LoadCommandIndex) +
877 auto Start = Load.Ptr + sizeof(MachO::build_version_command);
886 const MachOObjectFile::LoadCommandInfo &Load,
888 if (Load.C.cmdsize < sizeof(MachO::rpath_command))
889 return malformedError("load command " + Twine(LoadCommandIndex) +
891 auto ROrErr = getStructOrErr<MachO::rpath_command>(Obj, Load.Ptr);
896 return malformedError("load command " + Twine(LoadCommandIndex) +
900 return malformedError("load command " + Twine(LoadCommandIndex) +
902 "of the load command");
904 // the end of the load command.
906 const char *P = (const char *)Load.Ptr;
911 return malformedError("load command " + Twine(LoadCommandIndex) +
913 "load command");
918 const MachOObjectFile::LoadCommandInfo &Load,
937 *LoadCmd = Load.Ptr;
942 const MachOObjectFile::LoadCommandInfo &Load,
944 if (Load.C.cmdsize < sizeof(MachO::linker_option_command))
945 return malformedError("load command " + Twine(LoadCommandIndex) +
948 getStructOrErr<MachO::linker_option_command>(Obj, Load.Ptr);
953 const char *string = (const char *)Load.Ptr +
966 return malformedError("load command " + Twine(LoadCommandIndex) +
975 return malformedError("load command " + Twine(LoadCommandIndex) +
982 const MachOObjectFile::LoadCommandInfo &Load,
987 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
990 if (PathOffset >= Load.C.cmdsize)
991 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
993 "extends past the end of the load command");
995 // the end of the load command.
997 const char *P = (const char *)Load.Ptr;
998 for (i = PathOffset; i < Load.C.cmdsize; i++)
1001 if (i >= Load.C.cmdsize)
1002 return malformedError("load command " + Twine(LoadCommandIndex) + " " +
1004 "the end of the load command");
1009 const MachOObjectFile::LoadCommandInfo &Load,
1012 if (Load.C.cmdsize < sizeof(MachO::thread_command))
1013 return malformedError("load command " + Twine(LoadCommandIndex) +
1016 getStructOrErr<MachO::thread_command>(Obj, Load.Ptr);
1020 const char *state = Load.Ptr + sizeof(MachO::thread_command);
1021 const char *end = Load.Ptr + T.cmdsize;
1026 return malformedError("load command " + Twine(LoadCommandIndex) +
1036 return malformedError("load command " + Twine(LoadCommandIndex) +
1048 return malformedError("load command " + Twine(LoadCommandIndex) +
1054 return malformedError("load command " + Twine(LoadCommandIndex) +
1059 return malformedError("load command " + Twine(LoadCommandIndex) +
1067 return malformedError("load command " + Twine(LoadCommandIndex) +
1073 return malformedError("load command " + Twine(LoadCommandIndex) +
1079 return malformedError("load command " + Twine(LoadCommandIndex) +
1085 return malformedError("load command " + Twine(LoadCommandIndex) +
1091 return malformedError("load command " + Twine(LoadCommandIndex) +
1097 return malformedError("load command " + Twine(LoadCommandIndex) +
1103 return malformedError("load command " + Twine(LoadCommandIndex) +
1109 return malformedError("load command " + Twine(LoadCommandIndex) +
1115 return malformedError("load command " + Twine(LoadCommandIndex) +
1121 return malformedError("load command " + Twine(LoadCommandIndex) +
1126 return malformedError("load command " + Twine(LoadCommandIndex) +
1134 return malformedError("load command " + Twine(LoadCommandIndex) +
1140 return malformedError("load command " + Twine(LoadCommandIndex) +
1145 return malformedError("load command " + Twine(LoadCommandIndex) +
1154 return malformedError("load command " + Twine(LoadCommandIndex) +
1160 return malformedError("load command " + Twine(LoadCommandIndex) +
1165 return malformedError("load command " + Twine(LoadCommandIndex) +
1173 return malformedError("load command " + Twine(LoadCommandIndex) +
1179 return malformedError("load command " + Twine(LoadCommandIndex) +
1184 return malformedError("load command " + Twine(LoadCommandIndex) +
1190 return malformedError("unknown cputype (" + Twine(cputype) + ") load "
1201 &Load,
1205 if (Load.C.cmdsize != sizeof(MachO::twolevel_hints_command))
1206 return malformedError("load command " + Twine(LoadCommandIndex) +
1210 auto HintsOrErr = getStructOrErr<MachO::twolevel_hints_command>(Obj, Load.Ptr);
1231 *LoadCmd = Load.Ptr;
1235 // Returns true if the libObject code does not support the load command and its
1236 // contents. The cmd value it is treated as an unknown load command but with
1289 Err = malformedError("load commands extend past the end of the file");
1302 LoadCommandInfo Load;
1305 Load = *LoadOrErr;
1325 if (Load.C.cmdsize % 8 != 0) {
1330 Load.C.cmd != MachO::LC_THREAD || Load.C.cmdsize % 4) {
1331 Err = malformedError("load command " + Twine(I) + " cmdsize not a "
1337 if (Load.C.cmdsize % 4 != 0) {
1338 Err = malformedError("load command " + Twine(I) + " cmdsize not a "
1343 LoadCommands.push_back(Load);
1344 if (Load.C.cmd == MachO::LC_SYMTAB) {
1345 if ((Err = checkSymtabCommand(*this, Load, I, &SymtabLoadCmd, Elements)))
1347 } else if (Load.C.cmd == MachO::LC_DYSYMTAB) {
1348 if ((Err = checkDysymtabCommand(*this, Load, I, &DysymtabLoadCmd,
1351 } else if (Load.C.cmd == MachO::LC_DATA_IN_CODE) {
1352 if ((Err = checkLinkeditDataCommand(*this, Load, I, &DataInCodeLoadCmd,
1356 } else if (Load.C.cmd == MachO::LC_LINKER_OPTIMIZATION_HINT) {
1357 if ((Err = checkLinkeditDataCommand(*this, Load, I, &LinkOptHintsLoadCmd,
1362 } else if (Load.C.cmd == MachO::LC_FUNCTION_STARTS) {
1363 if ((Err = checkLinkeditDataCommand(*this, Load, I, &FuncStartsLoadCmd,
1367 } else if (Load.C.cmd == MachO::LC_SEGMENT_SPLIT_INFO) {
1368 if ((Err = checkLinkeditDataCommand(*this, Load, I, &SplitInfoLoadCmd,
1372 } else if (Load.C.cmd == MachO::LC_DYLIB_CODE_SIGN_DRS) {
1373 if ((Err = checkLinkeditDataCommand(*this, Load, I, &CodeSignDrsLoadCmd,
1377 } else if (Load.C.cmd == MachO::LC_CODE_SIGNATURE) {
1378 if ((Err = checkLinkeditDataCommand(*this, Load, I, &CodeSignLoadCmd,
1382 } else if (Load.C.cmd == MachO::LC_DYLD_INFO) {
1383 if ((Err = checkDyldInfoCommand(*this, Load, I, &DyldInfoLoadCmd,
1386 } else if (Load.C.cmd == MachO::LC_DYLD_INFO_ONLY) {
1387 if ((Err = checkDyldInfoCommand(*this, Load, I, &DyldInfoLoadCmd,
1390 } else if (Load.C.cmd == MachO::LC_DYLD_CHAINED_FIXUPS) {
1392 *this, Load, I, &DyldChainedFixupsLoadCmd,
1395 } else if (Load.C.cmd == MachO::LC_DYLD_EXPORTS_TRIE) {
1397 *this, Load, I, &DyldExportsTrieLoadCmd, "LC_DYLD_EXPORTS_TRIE",
1400 } else if (Load.C.cmd == MachO::LC_UUID) {
1401 if (Load.C.cmdsize != sizeof(MachO::uuid_command)) {
1410 UuidLoadCmd = Load.Ptr;
1411 } else if (Load.C.cmd == MachO::LC_SEGMENT_64) {
1414 *this, Load, Sections, HasPageZeroSegment, I,
1417 } else if (Load.C.cmd == MachO::LC_SEGMENT) {
1420 *this, Load, Sections, HasPageZeroSegment, I,
1423 } else if (Load.C.cmd == MachO::LC_ID_DYLIB) {
1424 if ((Err = checkDylibIdCommand(*this, Load, I, &DyldIdLoadCmd)))
1426 } else if (Load.C.cmd == MachO::LC_LOAD_DYLIB) {
1427 if ((Err = checkDylibCommand(*this, Load, I, "LC_LOAD_DYLIB")))
1429 Libraries.push_back(Load.Ptr);
1430 } else if (Load.C.cmd == MachO::LC_LOAD_WEAK_DYLIB) {
1431 if ((Err = checkDylibCommand(*this, Load, I, "LC_LOAD_WEAK_DYLIB")))
1433 Libraries.push_back(Load.Ptr);
1434 } else if (Load.C.cmd == MachO::LC_LAZY_LOAD_DYLIB) {
1435 if ((Err = checkDylibCommand(*this, Load, I, "LC_LAZY_LOAD_DYLIB")))
1437 Libraries.push_back(Load.Ptr);
1438 } else if (Load.C.cmd == MachO::LC_REEXPORT_DYLIB) {
1439 if ((Err = checkDylibCommand(*this, Load, I, "LC_REEXPORT_DYLIB")))
1441 Libraries.push_back(Load.Ptr);
1442 } else if (Load.C.cmd == MachO::LC_LOAD_UPWARD_DYLIB) {
1443 if ((Err = checkDylibCommand(*this, Load, I, "LC_LOAD_UPWARD_DYLIB")))
1445 Libraries.push_back(Load.Ptr);
1446 } else if (Load.C.cmd == MachO::LC_ID_DYLINKER) {
1447 if ((Err = checkDyldCommand(*this, Load, I, "LC_ID_DYLINKER")))
1449 } else if (Load.C.cmd == MachO::LC_LOAD_DYLINKER) {
1450 if ((Err = checkDyldCommand(*this, Load, I, "LC_LOAD_DYLINKER")))
1452 } else if (Load.C.cmd == MachO::LC_DYLD_ENVIRONMENT) {
1453 if ((Err = checkDyldCommand(*this, Load, I, "LC_DYLD_ENVIRONMENT")))
1455 } else if (Load.C.cmd == MachO::LC_VERSION_MIN_MACOSX) {
1456 if ((Err = checkVersCommand(*this, Load, I, &VersLoadCmd,
1459 } else if (Load.C.cmd == MachO::LC_VERSION_MIN_IPHONEOS) {
1460 if ((Err = checkVersCommand(*this, Load, I, &VersLoadCmd,
1463 } else if (Load.C.cmd == MachO::LC_VERSION_MIN_TVOS) {
1464 if ((Err = checkVersCommand(*this, Load, I, &VersLoadCmd,
1467 } else if (Load.C.cmd == MachO::LC_VERSION_MIN_WATCHOS) {
1468 if ((Err = checkVersCommand(*this, Load, I, &VersLoadCmd,
1471 } else if (Load.C.cmd == MachO::LC_NOTE) {
1472 if ((Err = checkNoteCommand(*this, Load, I, Elements)))
1474 } else if (Load.C.cmd == MachO::LC_BUILD_VERSION) {
1475 if ((Err = parseBuildVersionCommand(*this, Load, BuildTools, I)))
1477 } else if (Load.C.cmd == MachO::LC_RPATH) {
1478 if ((Err = checkRpathCommand(*this, Load, I)))
1480 } else if (Load.C.cmd == MachO::LC_SOURCE_VERSION) {
1481 if (Load.C.cmdsize != sizeof(MachO::source_version_command)) {
1490 SourceLoadCmd = Load.Ptr;
1491 } else if (Load.C.cmd == MachO::LC_MAIN) {
1492 if (Load.C.cmdsize != sizeof(MachO::entry_point_command)) {
1501 EntryPointLoadCmd = Load.Ptr;
1502 } else if (Load.C.cmd == MachO::LC_ENCRYPTION_INFO) {
1503 if (Load.C.cmdsize != sizeof(MachO::encryption_info_command)) {
1509 getStruct<MachO::encryption_info_command>(*this, Load.Ptr);
1510 if ((Err = checkEncryptCommand(*this, Load, I, E.cryptoff, E.cryptsize,
1513 } else if (Load.C.cmd == MachO::LC_ENCRYPTION_INFO_64) {
1514 if (Load.C.cmdsize != sizeof(MachO::encryption_info_command_64)) {
1520 getStruct<MachO::encryption_info_command_64>(*this, Load.Ptr);
1521 if ((Err = checkEncryptCommand(*this, Load, I, E.cryptoff, E.cryptsize,
1524 } else if (Load.C.cmd == MachO::LC_LINKER_OPTION) {
1525 if ((Err = checkLinkerOptCommand(*this, Load, I)))
1527 } else if (Load.C.cmd == MachO::LC_SUB_FRAMEWORK) {
1528 if (Load.C.cmdsize < sizeof(MachO::sub_framework_command)) {
1529 Err = malformedError("load command " + Twine(I) +
1534 getStruct<MachO::sub_framework_command>(*this, Load.Ptr);
1535 if ((Err = checkSubCommand(*this, Load, I, "LC_SUB_FRAMEWORK",
1540 } else if (Load.C.cmd == MachO::LC_SUB_UMBRELLA) {
1541 if (Load.C.cmdsize < sizeof(MachO::sub_umbrella_command)) {
1542 Err = malformedError("load command " + Twine(I) +
1547 getStruct<MachO::sub_umbrella_command>(*this, Load.Ptr);
1548 if ((Err = checkSubCommand(*this, Load, I, "LC_SUB_UMBRELLA",
1553 } else if (Load.C.cmd == MachO::LC_SUB_LIBRARY) {
1554 if (Load.C.cmdsize < sizeof(MachO::sub_library_command)) {
1555 Err = malformedError("load command " + Twine(I) +
1560 getStruct<MachO::sub_library_command>(*this, Load.Ptr);
1561 if ((Err = checkSubCommand(*this, Load, I, "LC_SUB_LIBRARY",
1566 } else if (Load.C.cmd == MachO::LC_SUB_CLIENT) {
1567 if (Load.C.cmdsize < sizeof(MachO::sub_client_command)) {
1568 Err = malformedError("load command " + Twine(I) +
1573 getStruct<MachO::sub_client_command>(*this, Load.Ptr);
1574 if ((Err = checkSubCommand(*this, Load, I, "LC_SUB_CLIENT",
1578 } else if (Load.C.cmd == MachO::LC_ROUTINES) {
1579 if (Load.C.cmdsize != sizeof(MachO::routines_command)) {
1589 RoutinesLoadCmd = Load.Ptr;
1590 } else if (Load.C.cmd == MachO::LC_ROUTINES_64) {
1591 if (Load.C.cmdsize != sizeof(MachO::routines_command_64)) {
1601 RoutinesLoadCmd = Load.Ptr;
1602 } else if (Load.C.cmd == MachO::LC_UNIXTHREAD) {
1603 if ((Err = checkThreadCommand(*this, Load, I, "LC_UNIXTHREAD")))
1609 UnixThreadLoadCmd = Load.Ptr;
1610 } else if (Load.C.cmd == MachO::LC_THREAD) {
1611 if ((Err = checkThreadCommand(*this, Load, I, "LC_THREAD")))
1614 } else if (Load.C.cmd == MachO::LC_TWOLEVEL_HINTS) {
1615 if ((Err = checkTwoLevelHintsCommand(*this, Load, I,
1618 } else if (Load.C.cmd == MachO::LC_IDENT) {
1621 } else if (isLoadCommandObsolete(Load.C.cmd)) {
1622 Err = malformedError("load command " + Twine(I) + " for cmd value of: " +
1623 Twine(Load.C.cmd) + " is obsolete and not "
1627 // TODO: generate a error for unknown load commands by default. But still
1631 if (auto LoadOrErr = getNextLoadCommandInfo(*this, I, Load))
1632 Load = *LoadOrErr;
1641 Err = malformedError("contains LC_DYSYMTAB load command without a "
1642 "LC_SYMTAB load command");
1651 Err = malformedError("ilocalsym in LC_DYSYMTAB load command "
1658 Err = malformedError("ilocalsym plus nlocalsym in LC_DYSYMTAB load "
1663 Err = malformedError("iextdefsym in LC_DYSYMTAB load command "
1671 "load command extends past the end of the symbol "
1676 Err = malformedError("iundefsym in LC_DYSYMTAB load command "
1683 Err = malformedError("iundefsym plus nundefsym in LC_DYSYMTAB load "
1691 Err = malformedError("no LC_ID_DYLIB load command in dynamic library "
4840 // If there is no SymtabLoadCmd return a load command with zero'ed fields.
4855 // If there is no DysymtabLoadCmd return a load command with zero'ed fields.
4885 // If there is no DataInCodeLoadCmd return a load command with zero'ed fields.
4899 // If there is no LinkOptHintsLoadCmd return a load command with zero'ed
4981 // Load the dyld chained fixups load command.
4991 // If the load command is present but the data offset has been zeroed out,
5011 // Load the dyld chained fixups header.
5030 // Load the image starts.