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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    // https://github.com/WebKit/webkit/blob/e0e7e8f907f4c01c723374e8230a63d46e89e6a0/Source/WebCore/platform/graphics/filters/FEComposite.cpp#L98
    
    static unsigned char clampByte(int c)
    {
        unsigned char buff[] = { static_cast<unsigned char>(c), 255, 0 };
        unsigned uc = static_cast<unsigned>(c);
        return buff[!!(uc & ~0xff) + !!(uc & ~(~0u >> 1))];
    }

    Запостил: j123123, 22 Апреля 2019

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

    • Взято с https://www.linux.org.ru/forum/development/14949333
      Ответить
    • Тайминг атаки
      https://github.com/WebKit/webkit/commit/5bec6fe272396b07db853f0672fe4b0348e465f7

      Patch by Said Abou-Hallawa <[email protected],com> on 2016-04-08
      Reviewed by Oliver Hunt.

      Ensure the FEComposite arithmetic filter is clamping the resulted color
      components in a constant time.
      Ответить
      • Давно уже пора специальные флаги компиляции запиливать для защиты от тайминг атак, чтоб не надо было всякую вот такую херню с битоебством писать
        Ответить
      • хакнул сайт с помощью SVG
        Ответить
    • сишник не может без магии.
      Зачем писать понятно если можно писать как хакер?
      Ответить
    • unsigned char clampByte(int c)
      { 
        unsigned char buff[3] = {(unsigned char)c, 255, 0};
        return buff[ (c < 0) + ((unsigned)c > 255) ];
      }
      Ответить
      • В тысячу раз понятнее же, и совсем не от статик каста.

        Вот почему они это делают?
        Ответить
        • Статик каст убивает читаемость. Поэтому я (за)си и (за)"php".
          Ответить
          • а ~0u >> 1 не убивает?

            Я может пыхобыдло тупое, но мне каждый раз такое чуть ли не с бумажечкой надо разбирать
            Ответить
    • Ты с этим по роботе сталкиваешься, или просто так в навозе ковыряешься?
      Ответить
      • Не, я это на ЛОРе увидел, см. выше первый комментарий
        Ответить
        • Ты на лоре тусишь? как там сейчас? Раньше там было очень противно.
          по вопросу прыщей я теку от LQ: там боль-мень адекватные
          Ответить
          • > Ты на лоре тусишь? как там сейчас? Раньше там было очень противно.

            да хз, индифферентно. Не помню чтоб мне было там противно или наоборот хорошо
            Ответить
            • у тебя какие прыщи?
              дебиан небось или арч?
              Ответить
              • Подростковые
                Ответить
                • Подростки-прыщеебы это очень смешно, кстати. Их еще называют фанбои.
                  Они нихуя не знают про Linux на самом деле, вчера только Ubuntu поставили по инструкции, и скорее бегут на все форумы писать что винда -- дырявое говно, а в микрософт работают хуевые программисты
                  Ответить
              • на этом компе убунта, на ноуте гента стоит в дуалбуте с бубунтой (надо будет кстати переустановить там все нахер), на роутере openwrt, на телефоне LineageOS. В телевизорах еще какие-то специализированные версии линупс-дистрибутивов стоят. Арчем не пользовался вообще никогда, а вот с гентой в свое время знатно так наебался
                Ответить
                • тоже ибалсо с гентой, помню.
                  emergнешь что-то большое и идешь пить кофе. Зато всё понятно, никакой магии. В этих ваших убунтах и центосах волшебние скрипты поверх других волшебных скриптов и всё меняется каждые 4 месяца

                  Я теперь слакварист
                  Ответить
    • Кроме шуток, объясните пожалуста: зачем нужна битоёбова магия? Это профдеформация?
      Ответить
    • Тайминг-атака на алгоритм обработки картинки? Даже не представляю, зачем это может понадобиться...
      Ответить

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