Кресты / Говнокод #28838 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
const uint8_t DexFile::kDexMagic[] = { 'd', 'e', 'x', '\n' };
const uint8_t DexFile::kDexMagicVersions[DexFile::kNumDexVersions][DexFile::kDexVersionLen] = {
  {'0', '3', '5', '\0'},
  // Dex version 036 skipped because of an old dalvik bug on some versions of android where dex
  // files with that version number would erroneously be accepted and run.
  {'0', '3', '7', '\0'}
};

Отсюдова:
https://android.googlesource.com/platform/art/+/refs/heads/nougat-release/runtime/dex_file.cc

Запостил: ropuJIJIa ropuJIJIa, (Updated )

Комментарии (2) RSS

  • SEO-пост: семь паттернов ошибок.

    Версия «036» байткода «Dalvik» была пропущена, потому что в старых версиях ОС ошиблись на единицу в проверке условия.
    Ответить
    • То есть в старых ОС должно быть что-то типа:
      if (version >= 36) {
          printf("Kakoi bagor");
          return EGGOGCODE;
      }
      А написали так:
      if (version > 36) {
          printf("Kakoi bagor");
          return EGGOGCODE;
      }

      В результате несуществующая 36-я версия байткода загружалась, и для новой версии пришлось брать номер ещё выше.
      Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8