ИзнаСИлование программного кода

Видели когда-нибудь нижепроцитированное? Веб-сервер Apache на домашней машине сегодня порадовал при попытке скачать на вторую машину фильм в 3.9 гигабайта (обратите внимание на «content-length»). Корень проблемы ясен — какому-то программисту зачем-то понадобилось использовать знаковый integer для поля длины файла, соответственно всё, что больше двух гигабайт становится отрицательной длины. Чуть попозже попробую присоединить к этому файлу ещё мегабат двести и посмотреть как лопнет мозг у Apache при попытке засунуть это значение в 32 бита.
HTTP/1.1 200 OK
Date: Thu, 29 Nov 2007 18:04:09 GMT
Server: Apache/1.3.33 (Win32) PHP/5.2.0-dev
Last-Modified: Thu, 21 Jun 2007 11:27:00 GMT
ETag: "0-f702ceea-467a6084"
Accept-Ranges: bytes
Content-Length: -150810902
Connection: close
Content-Type: video/x-msvideo
Попробовал. Файл 4171 мегабайт Apache 1.3.33 показал как 74-х мегабайтный.
29 ноября 2007 20:29

lgl.livejournal.com (lgl.livejournal.com)
30 ноября 2007, 03:28

Помню встречался с этим, исправили это насколько помню в апаче версии 2.2, даже пришлось специально его компилировать, чтобы люди могли нормально DVD фильмы скачивать.

indeyets.livejournal.com (indeyets.livejournal.com)
30 ноября 2007, 09:15

потому что нефиг пользоваться устаревшим ПО! ;)

bolk (bolknote.ru)
30 ноября 2007, 11:13

Ошибка же невероятно глупая и очевидная!

bolk (bolknote.ru)
30 ноября 2007, 11:20

Столько лет делали и такая ошибка в коде… Мда…

alexanderich.livejournal.com (alexanderich.livejournal.com)
30 ноября 2007, 11:32

Старая ошибка, старого апача.

bolk (bolknote.ru)
30 ноября 2007, 12:13

Я на это смотрю иначе — глупая ошибка в программе, которую делали 12 (!) лет.

danilashtan.moikrug.ru (danilashtan.moikrug.ru)
1 декабря 2007, 07:20

Проблему с "4 гигабайтами", насколько я помню, не победили и в новом. :)

bolk (bolknote.ru)
1 декабря 2007, 11:24

Странно, вроде и побеждать-то нечего — взял тип побольше и все дела.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)