Читать «Bash IT Happens Истории ## 5701 – 5800» онлайн - страница 15

Bash.org.ru IT

Подумалось, что ОС, в которой есть демоны и зомби, просто провела сеанс связи по спиритическому протоколу.

#5751: Brain mismatch

14:00 21.03.2011, IT happens

Девушка учится на менеджера. На экзамене по информатике надо было решить задачку на Паскале:

a := 5;

b := a*2 - 6;

c := b > a;

Конечно, нужно было догадаться, что c — это переменная boolean. Преподаватель с удивлением наблюдал около двадцати листов, на которых в графе ответа стояло: «Error 23. Type mismatch».

#5752: В неизвестность со спецэффектами

14:00 21.03.2011, IT happens

Повадилась одна система валиться, причём в каких-то левых местах, каждый раз в новой подсистеме. А поскольку программа должна была бить рекорды надёжности (что-то там на электростанции измерять), то по шапке получили все, в чьих подсистемах были замечены падения.

Вся фирма на ушах — ищем баги. Опытным путём локализовали ресурсные файлы, после загрузки которых происходили падения, для общности снесли их в одну директорию — падения прекратились. Танцы с бубном продолжались довольно долго. Наконец что-то щёлкнуло в мозгу.

Итак, есть подпрограмма:

1. Объявляем массив для хранения имени файла.

2. Адрес этого массива передаём в другую подпрограмму, где в него заносится имя файла, файл загружается, и с ним довольно долго работают.

3. Выходим из всех подпрограмм наверх, в главное меню.

Как вы думаете, что лежало в памяти за «хвостом» массива? Правильно, адрес возврата из подпрограммы. Классическое переполнение буфера: стоит записать в массив на один символ больше, и по возврату из подпрограммы нам гарантирован полёт в неизвестность со всеми спецэффектами.

Заключительный аккорд: размер массива зарезал сам начальник. Молодость программистскую, блин, вспомнил. Программа-то 16-битная была, стек, соответственно, больше 64К быть не мог. Вот и оказал нам шеф свою посильную помощь, снизив нагрузку…

#5753: Проходите, нечего здесь смотреть

15:45 21.03.2011, IT happens

Лет десять назад в нашем городе единственным приемлемым вариантом доступа в сеть был один из дайлап-провайдеров. Тарификация была поминутной — выходило более доллара в час, совершенно неподъёмная сумма. Провайдер предоставлял и бесплатный тестовый доступ. Зайдя под логином «guest» и паролем «sci», пользователь мог подключиться, поглядеть на сайт провайдера и зайти в личный кабинет для пополнения счёта.

На первом месте работы мне случилось администрировать сайт, который хостился у того самого провайдера. Админ провайдера совершил трагическую ошибку. Рабочий сайт был доступен из-под гостевого аккаунта — видимо, фильтр стоял по IP-адресу, а все сайты лежали на одной машине.

Остальное было делом техники. HTTP-прокси принимал запрос от локального браузера на открытие страницы и, заворачивая его в POST-метод, передавал PHP-скрипту на рабочем сайте. Cкрипт разворачивал запрос, выполнял его, скачивая запрошенный документ, и возвращал ответ прокси. Мелкие завитушки вроде аутентификации пользователей — и в интернете стало можно сидеть бесплатно. Идиллия омрачалась только тем, что гостевой доступ разрывался каждые десять минут, но это мелкое неудобство никак не мешало наслаждаться халявой.