1. Список говнокодов пользователя bormand

    Всего: 155

  2. C++ / Говнокод #17816

    +144

    1. 1
    2. 2
    info->cipher_oid = oid_to_string(p->header2->header3->header4->header5->cipher_oid);
    info->hash_oid = oid_to_string(p->header2->header3->header4->header5->hash_oid);

    Вчера наговнокодил.

    bormand, 18 Марта 2015

    Комментарии (12)
  3. Си / Говнокод #17808

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    /*
     * BIG UGLY WARNING! This is so damn ugly I wanna puke.  Unfortunately, some
     * macros that use ASN1_const_CTX still insist on writing in the input
     * stream.  ARGH! ARGH! ARGH! Let's get rid of this macro package. Please? --
     * Richard Levitte      
     */

    OpenSSL...

    bormand, 17 Марта 2015

    Комментарии (30)
  4. Java / Говнокод #17741

    +79

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    private short findHeaderLength() {
        return (short)(
            1+
            3+
            4+
            2+
            2+
            2+
            1+
            1+
            4+
            4+
            4+
            1+
            1+
            2+
            (32*fieldArray.length)+
            1
        );
    }

    DBFHeader

    bormand, 06 Марта 2015

    Комментарии (10)
  5. C++ / Говнокод #17717

    +60

    1. 1
    std::string s = "a" /* + */ "b";

    bormand, 02 Марта 2015

    Комментарии (6)
  6. Куча / Говнокод #17688

    +133

    1. 1
    2. 2
    HTTP referer (originally a misspelling of referrer) is an HTTP header field that identifies the address of the webpage
    (i.e. the URI or IRI) that linked to the resource being requested.

    Originally a misspelling of referrer...

    bormand, 24 Февраля 2015

    Комментарии (12)
  7. Си / Говнокод #17658

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    /* The DNS spec is officially case-insensitive, but for those times when you
    *really* wanna see any and all discrepancies, by all means define this. */
    #ifdef ANAL
        if (strcmp (poop->name, hp->h_name) != 0) { /* case-sensitive */
    #else
        if (strcasecmp (poop->name, hp->h_name) != 0) { /* normal */
    #endif

    Из первой версии netcat'а.

    bormand, 17 Февраля 2015

    Комментарии (9)
  8. bash / Говнокод #17629

    −114

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    arp_monitor() {
        echo "ARP monitor started on $LAN_IFACE..."
        tcpdump -l -n -i $LAN_IFACE ether src not $LAN_MAC 2>/dev/null | awk 'BEGIN{FS="[ ,]"}{if ($2 == "ARP" && $4 == "Request") print $6, $8;}' | while read GATEWAY CLIENT; do
            if [ "$GATEWAY" == "$CLIENT" ]; then
                echo "Got ARP collision probe gw=$GATEWAY client=$CLIENT"
            else
                echo "Got ARP request gw=$GATEWAY client=$CLIENT"
                ip addr add "$GATEWAY/32" dev "$LAN_IFACE" 2>/dev/null
                ip route add "$CLIENT/32" dev "$LAN_IFACE" 2>/dev/null
            fi
        done
    }

    Фрагмент моего magic router'а, который раздаёт инет любому воткнутому в него компу (ну кроме совсем паталогических случаев).

    bormand, 12 Февраля 2015

    Комментарии (27)
  9. C++ / Говнокод #17592

    +57

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    template <class T>
    T checked_signed_add(T a, T b) {
        if (a >= 0) {
            if (b >= 0 && std::numeric_limits<T>::max() - a < b)
                throw std::runtime_error("Integer overflow");
        } else {
            if (b < 0 && std::numeric_limits<T>::min() - a > b)
                throw std::runtime_error("Integer overflow");
        }
        return a + b;
    }

    Кресты. Знаковые числа. Сложение.

    http://ideone.com/qxyAoG

    bormand, 06 Февраля 2015

    Комментарии (33)
  10. C++ / Говнокод #17558

    +53

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for (int i = 1; i <= s.Length; ++i) {
        if (s[i] == '/') {
            s = s.SubString(1, i) + s.SubString(i, MaxInt);
            ++i;
        }
    }

    Кручу-верчу запутать хочу. Кто с первого раза догадается, в чём задача кода - получит пирожок с полочки.

    P.S. Строки билдеровские, нумерация с 1. SubString принимает индекс начала и количество символов.

    bormand, 02 Февраля 2015

    Комментарии (98)
  11. Си / Говнокод #17507

    +137

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    // For a portable version of timegm(), set the TZ environment variable  to
    // UTC, call mktime(3) and restore the value of TZ.  Something like
    
    #include <time.h>
    #include <stdlib.h>
    
    time_t
    my_timegm(struct tm *tm)
    {
        time_t ret;
        char *tz;
    
        tz = getenv("TZ");
        if (tz)
            tz = strdup(tz);
        setenv("TZ", "", 1);
        tzset();
        ret = mktime(tm);
        if (tz) {
            setenv("TZ", tz, 1);
            free(tz);
        } else
            unsetenv("TZ");
        tzset();
        return ret;
    }

    Цитата из man timegm. Сборка unix timestamp из компонент (год, месяц и т.п.).

    Удобно, наглядно, потокобезопасно.

    bormand, 23 Января 2015

    Комментарии (1)