1. C++ / Говнокод #21943

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // std::map<uint32_t, uint32_t> _mcpCarrierMap;
    
    uint32_t MCPCarrierUtil::virtualToReal(uint32_t cxr) 
    {
       for (const auto& mapping : _mcpCarrierMap)
      {
        if (mapping.first == cxr)
          return mapping.second;
      }
      return cxr;
    }

    Даже не знаю что єто. Толи незнание стандартной библиотеки, толи хитрьій умьісл.

    Запостил: Elvenfighter, 05 Января 2017

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

    • Это защита от timing-атак: злой хакер будет ломать криптографию, увидит поиск в мапе за O(n) и ничего не поймёт!
      Ответить
      • Не, хуёвая защита. Там же мап не всегда до конца проходят. Надо так:
        uint32_t result = cxr;
        for (const auto& mapping : _mcpCarrierMap) {
            if (mapping.first == cxr)
                result = mapping.second;
        }
        return result;
        Ответить
        • О, так это не защита, это наоборот бекдор для тайминг-атак.
          Ответить
    • >virtualToReal
      Это что, исходные тексты микропрограммы контроллера памяти в процессоре?
      Ответить
    • >хитрьій умьісл.
      Громадянин детекдет.
      Ответить

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