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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    switch (lol) {
        case E::Foo:
            return 1;
        case E::Bar:
        default:
            return 0;
        case E::Baz:
            return 2;
    }

    Вы знали, что так можно?
    Надо запустить пиваса.

    3_dar, 22 Декабря 2023

    Комментарии (8)
  2. C++ / Говнокод #28892

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // В преддверии нового года на сайте PVS-Studio увеличилось количества C++ говнокода.
    // Во-первых, вышла подбора багов за год, а во-вторых, квиз на поиск багов.
    // Первый пример кода из квиза для разминки:
    
    void  UObject::setDeltaPitch(const UMatrix &gizmo) {
      ....
      if (_fpzero(amount, eps))
        return
      rotateAccum.setAnglesXYZ(axis);
      ....
    }

    Если заинтересовались, то приятного чтения и удачи в поисках говнокодистых багов. Вас ждёт говнокод первого сорта.
    Топ 10 ошибок в C и С++ проектах в 2023 году - https://pvs-studio.ru/ru/blog/posts/cpp/1092/
    С++ квиз от PVS-Studio и Сергея Кушниренко - https://pvs-studio.ru/ru/blog/quest/kushnirenko_quiz/
    А если что-то останется непонятным в квизе, то есть его разбор - https://pvs-studio.ru/ru/blog/posts/cpp/1091/
    С наступающим НГ!

    Andrey_Karpov, 22 Декабря 2023

    Комментарии (37)
  3. Kotlin / Говнокод #28891

    0

    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
    27. 27
    28. 28
    29. 29
    @JvmInline
    value class Code(val value: Short) {
    
        companion object {
    
            fun from(value: Number): CurrencyCode {
                checkValid(value)
                return CurrencyCode(value.toShort())
            }
    
            private fun checkValid(value: Number) {
                val targetValue = value.toDouble()
                val isValueInvalid = floor(targetValue) != targetValue
                        || targetValue < 0
                        || targetValue > Short.MAX_VALUE
                if (isValueInvalid) {
                    throw DomainRuleViolationException(
                        "Code must be of 'short' type, greater than 0 and lower than ${Short.MAX_VALUE}. Provided: [$value]"
                    )
                }
            }
    
        }
    
        init {
            checkValid(value)
        }
    
    }

    Валидация данных приходящих в контроллер. При этом в проекте существует Эксепшнхендлер на неверный инпут от пользователя, который отлично работает еще во время десерелизации запроса.

    Boeing1337, 22 Декабря 2023

    Комментарии (3)
  4. JavaScript / Говнокод #28890

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    $('.swiper-wrapper')
     	.addClass('owl-carousel')
    	.owlCarousel({
    		items: 4,
    		margin: 10,
    		dots: true,
                    dotSpeed: 1000,
    		nav: false,
    		lazyContent: true
    	});

    Epiicac, 19 Декабря 2023

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

    0

    1. 1
    Пиздец-оффтоп #93

    #63: https://govnokod.ru/28573 https://govnokod.xyz/_28573
    #64: https://govnokod.ru/28584 https://govnokod.xyz/_28584
    #65: https://govnokod.ru/28599 https://govnokod.xyz/_28599
    #66: https://govnokod.ru/28609 https://govnokod.xyz/_28609
    #67: (vanished) https://govnokod.xyz/_28615
    #68: https://govnokod.ru/28636 https://govnokod.xyz/_28636
    #69: (vanished) https://govnokod.xyz/_28660
    #70: (vanished) https://govnokod.xyz/_28667
    #71: https://govnokod.ru/28677 https://govnokod.xyz/_28677
    #72: https://govnokod.ru/28685 https://govnokod.xyz/_28685
    #73: https://govnokod.ru/28692 https://govnokod.xyz/_28692
    #74: https://govnokod.ru/28699 https://govnokod.xyz/_28699
    #75: https://govnokod.ru/28705 https://govnokod.xyz/_28705
    #76: https://govnokod.ru/28712 https://govnokod.xyz/_28712
    #77: https://govnokod.ru/28722 https://govnokod.xyz/_28722
    #78: https://govnokod.ru/28730 https://govnokod.xyz/_28730
    #79: https://govnokod.ru/28736 https://govnokod.xyz/_28736
    #80: https://govnokod.ru/28740 https://govnokod.xyz/_28740
    #81: https://govnokod.ru/28750 https://govnokod.xyz/_28750
    #82: https://govnokod.ru/28779 https://govnokod.xyz/_28779
    #83: https://govnokod.ru/28788 https://govnokod.xyz/_28788
    #84: https://govnokod.ru/28795 https://govnokod.xyz/_28795
    #85: https://govnokod.ru/28808 https://govnokod.xyz/_28808
    #86: (vanished) https://govnokod.xyz/_28814
    #87: https://govnokod.ru/28817 https://govnokod.xyz/_28817
    #88: https://govnokod.ru/28836 https://govnokod.xyz/_28836
    #89: https://govnokod.ru/28843 https://govnokod.xyz/_28843
    #90: https://govnokod.ru/28874 https://govnokod.xyz/_28874
    #91: https://govnokod.ru/28880 https://govnokod.xyz/_28880
    #92: https://govnokod.ru/28884 https://govnokod.xyz/_28884

    nepeKamHblu_nemyx, 16 Декабря 2023

    Комментарии (415)
  6. JavaScript / Говнокод #28888

    0

    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
    const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
        const price = Number(event.target.value);
        setPrice(price);
    
        if (timer) {
          clearTimeout(timer);
          setTimer(null);
        }
    
        const validPrice = validatePrice(price);
        if (event.target.id.includes("cause")) {
          handleOnChange(validPrice);
        } else {
          const timerId: any = setTimeout(() => {
            setPrice(validPrice);
            handleOnChange(validPrice);
          }, 1000);
    
          setTimer(timerId);
        }
      };

    :hang:

    Shannarra_, 14 Декабря 2023

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

    0

    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
    27. 27
    28. 28
    29. 29
    30. 30
    #include <windows.h>
    
    #define PL 7	//длинна пароля
    
    const char F[] = "`1234567890-=\\qwertyuiop[]asdfghjkl;'zxcvbnm,./";
    const char N[] = "1`2q1qw32we43er54rt65ty76yu87ui98io09op-0p[=-[]\\=]12wa23esaq34rdsw45tfde56ygfr67uhgt78ijhy89okju90plki0-[;lo-=]';p=\\'[qwszwedxzaerfcxsrtgvcdtyhbvfyujnbguikmnhiol,mjop;.,kp['/.l[]/;asxsdczxdfvcfgbvghnbhjmnjk,mkl.,l;/.;'";
    const char L[] = { 1, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 3 };
    
    struct _
    {
    	char P[PL + 1];
    	BYTE I[256], O[48];
    };
    
    void __stdcall $(int n, char c, _ *X)
    {
    	X->P[n++] = c;
    	for (int i = 0; n < PL && i < L[X->I[c]]; $(n, N[X->O[X->I[c]] + i++], X));
    	for (int i = 0, d = 0, l = 0, s = 0; n == PL && i < n; (X->P[i] >= '0' && X->P[i] <= '9') ? d++ : (X->P[i] >= 'a' && X->P[i] <= 'z') ? l++ : s++, (d && l && s) ? _lwrite(-11, X->P, ++n), i = n : i++);
    }
    
    void main()
    {
    	_ w;
    
    	w.P[PL] = '\n';
    
    	for (int i = 0; i < 47; w.I[F[i]] = i, w.O[i] = i ? w.O[i - 1] + L[i - 1] : 0, i++);
    	for (int i = 0; i < 47; $(0, F[i++], &w));
    }

    Генератор сложных (буквы, цифры, символы) паролей с выводом в консоль.
    Выводит ВСЕ пароли заданной длинны, которые можно ввести по соседним клавишам без шифта. Всякие лесенки, зигзаги и т.п., т.е. все плохие...
    В main переименовал, чтоб скомпилировать. Релизный exe-шник сразу стёр антивирус, сказал Trojan:Win32/Wacatac.B!ml
    Обфускаторы рулят :)

    sprog, 06 Декабря 2023

    Комментарии (2)
  8. JavaScript / Говнокод #28883

    0

    1. 1
    export type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;

    Адская супер-хуйня отсюда https://github.com/deneruaraujo/daily-diet-api
    Я не понял что она делает, даже небо, даже Аллах

    sex_mashina, 23 Ноября 2023

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

    0

    1. 1
    2. 2
    3. 3
    // Конкурс для C++ программистов от команды PVS-Studio
    // Уникальная возможность получить приз за говнокод с багом!
    // https://habr.com/ru/companies/pvs-studio/articles/775388/

    Поделитесь своим кодом с ошибкой и участвуйте в розыгрыше 10 книг "Вредные советы для C++ программистов". Подробности в публикации на Хабре: Конкурс для C++ программистов и их любимых багов - https://habr.com/ru/companies/pvs-studio/articles/775388/

    Andrey_Karpov, 21 Ноября 2023

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    bool isDate(int d, int m, int y)
    {
    	return m > 0 && m < 13 ? d > 0 && d < 29 + (m - 2 ? 2 + (m + m / 8) % 2 : !(y % 4) && (y % 100) || !(y % 400)) : 0;
    }

    sprog, 12 Ноября 2023

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