Чи доводилося вам виправляти дуже старі баги в легасі-коді?
Минулого тижня активно обговорювалась історія
Якщо коротко, польська програмістка Каміла Шевчик помітила проблему під час підготовки матеріалів для курсу в університеті Саарланду. Після відкриття одного з PDF-файлів робочий стіл почав зависати.
З’ясувалося, що збій виникав, коли E16 намагався скоротити занадто довге ім’я файлу. Шевчик локалізувала причину та підготувала повноцінний патч для версії 1.0.30. У ньому вона обмежила кількість ітерацій обробки тексту, усунула некоректні перекриття та додала захист від ділення на нуль.
Цей випадок нагадує, що навіть у зрілих та давно існуючих проєктах можуть роками жити дуже старі помилки. Ці баги часто проявляються лише за специфічних умов, або ж для їхнього виправлення потрібен свіжий погляд.
Тому цікаво почути про ваш досвід.
Чи доводилося вам знаходити або виправляти дуже старі баги в легасі-коді? Як це сталося — випадково чи завдяки системному розбору проблеми?
4 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівyoutu.be/_vRP_d0i2Iw
В 2007 сабмітнув перший патч до FireFox із Null pointer-ом на JavaScript та Xul в Download Manager. На тоді ще ломаному англіському пояснив мейнтейнерам в чому проблема та вистачило щоб обійти мовний барьєр, вони мені в BugZilla показали як користуватись CVS та зробити патч (ми працювали із SVN тоді).
Щоправда тоді конкретно код був не старий, а новітній в бетта версії яку ще не зарелизили.
В далекому 2011му мав справу з сьогодні покійним американським маркетом апок для мобільних телефонів(jar-ки, симбіан, ітд) , з дуже древнім кодом чи часом не з кінця 90х. І от в продавця в акаунті було поле типу userId, і це був текстовий інпут значення якого можна було міняти. І якщо його змінити на id іншого реального користувача, то ви ставали овнером своїх і його виставлених апок і це все без будь-яких валідацій.
Це точно було в проді, дивно що не було (або не доходили до нас) інцидентів.
Фікс, як я памятаю був простий як двері — в прибиранні цього поля з формочки і по коду заборона можливості юзеру міняти свій id.
Oh, shi...