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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
memsize =
  strlen("cpy_dta.sh ");

if ( memsize >= 4096 ) {
  sprintf( errMsg, "[%s] - ExecScript string too long", func);
  return -7;
}

sprintf( args, "cpy_dta.sh " );

if ( 0 != ( rc = ::system ( args ) ) )
{
  // ...
}

просто фейспалм.

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

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

    • он не одноразовый, он глобальный.
      но больше ++ нету.
      а по коду могу сказать, что похоже автор взял готовый шаблон и захардкодил имя файла.
      кстати, зачем пробел в 9 строке?
      Ответить
          • бойцы помогали компилятору выровнять .data - сразу сделали литерал длиной 12 байт
            уверен они знали что делали
            при этом они точно использовали нормальный компилятор, который оба вхождения на 2 и 9 строках не будет дублировать, а разместит по одному адресу
            а проверка memsize >= 4096 специально нужна, чтобы поток отъел пару тактов у процессора, в то время как другой поток сделает высокопроизводительные вычисления над переменной args - тогда не надо ни мутексов, ни фенсов, ни тем более безумные ассемблерные вставки не понадобятся.
            кроме того, неизвестно какого типа переменная rc, возможно, это специальный объект с перегруженным оператором =, который перемножает матрицы со сложностью О(1) или даже О(0)

            а может они этим хотели зашифровать какое то послание потомкам, только вот какое?..
            Ответить
      • надо было программистов на коболе брать для проекта, девять женщин родят одного младенца за месяц
        Ответить

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

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

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


    8