1. Си / Говнокод #3140

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    memset( fc->key, 0, KEY_LEN+1);
    memset( fc->value, 0, VALUE_LEN+1);
    
    strncpy(fc->key, key, strlen( key) + 1);
    strncpy(fc->value, value,strlen( value) + 1);

    совершенное непонимание работы ф-ии strncpy

    Запостил: benderlog, 30 Апреля 2010

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

    • Должно быть:
      strncpy(fc->key, key, KEY_LEN+1);
      strncpy(fc->value, value, VALUE_LEN+1);
      Ответить
    • BDB? :)
      Ответить
    • да ладно не сильно уж и гкодно
      Ответить
      • Ну да, подумаешь. переполнение буфера с возможностью DoS атаки и выполнения произвольного кода.
        Ответить
        • Ну бывают разные программы. В некоторых случаях атакавать не имеет смыла, например для какого-нибудь калькулятора.
          Ответить
          • Ну да. А если это онлайн калкулято? лол)
            Ответить
            • Онлайн калькулятор на Си? Назначение языков хоть знаешь?
              Те, кто пишет онлайн калькуляторы на Си, делают явно некомерческий проект. Дай бог и он закончит за пару лет.
              Автор говнокода не указал, что это сетевая программа, так, что низачёт.
              Ответить
        • >с возможностью DoS атаки
          Переполнение буфера c возможностью выполнения произвольного кода - это понятно. А как здесь может быть проведена DoS атака? O_o
          Ответить
        • надо юзать эзотеричный процессор и переполнение буфера не страшно :)
          Ответить
          • Сам то понял, что несёшь?
            Ответить
            • переполнение буфера с инъекцией некоторого кода нужно делать специфичное под каждую платформу, ибо опкоды разные.

              если не сидеть на x86 и не трепаться об этом, то все щаслевы.
              Ответить
    • знатное дерьмецо:)
      Ответить
    • А зачем memset() тут нужен ? косвенно намекнуть на размеры fc->key ?
      Ответить
      • У нас всё честно - без дураков: memset'ы были. Ну надо же на всякий случай "занулить".
        Ответить

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