Оперативно выпущено (http://www.php.net/index.php#id2011-01-06-1) обновление для поддерживаемой ветки интерпретатора PHP 5.3.5 (http://www.php.net/releases/5_3_5.php), а также обновление ветки 5.2.x (5.2.17 (http://www.php.net/releases/5_2_17.php)), поддержку которой планировалось прекратить в прошлом месяце. В новых версиях устранена критическая ошибка (http://www.opennet.me/opennews/art.shtml?num=29203), приводящая к зависанию при выполнении операций по преобразованию некоторых чисел с плавающей запятой (например, 2.2250738585072011e-308), при условии задействования в процессе преобразования x87 FPU-регистров.
Проблеме не подвержены сборки для архитектуры x86_64 или версии PHP, собранные с опцией "-ffloat-store" или "-mfpmath=sse". Для проверки на подверженность проблеме установленной версии PHP, достаточно выполнить простой PHP-скрипт (http://www.php.net/distributions/test_bug53632.txt), состоящий из строки $d = (double)"2.2250738585072011e-308".
URL: http://www.php.net/index.php#id2011-01-06-1
Новость: http://www.opennet.me/opennews/art.shtml?num=29215
Ну вот, теперь через месяцев 5, глядишь, и обновятся те хосты, которые работают под Windows.
Не, через 5 месяцев - это врятли, основная масса этих хостов (и именно серверов) обновится когда с сайта денвера уберут более старые версии и в варезниках они помрут, нельзя недооценивать тупость среднестатистического виндоюзера.
Для большинства сайтов, принимающих от пользователя действительные числа, DDOS делается простым однострочником.
Кто нить может объяснит глюк с этим числом, там переполнение, округление с переполнением, деление на 0, на NAN, NAN + число,.... ???
> Кто нить может объяснит глюк с этим числом, там переполнение, округление с переполнением, деление на 0, на NAN, NAN + число,.... ???Глюк заключается в ошибке, которая возникает при *округлении* данного числа и проявляется в том, что микропроцессор входит в состояние "вечного цикла". Возникновение данной ошибки вызвано недочетами в архитектуре математического сопроцессора x87, выполняющего операции над действительными числами. Если приложение производит обработку действительных чисел на основе технологии и регистров SSE, то ошибка не возникает.
>> Кто нить может объяснит глюк с этим числом, там переполнение, округление с переполнением, деление на 0, на NAN, NAN + число,.... ???
> Глюк заключается в ошибке, которая возникает при *округлении* данного числа и проявляется
> в том, что микропроцессор входит в состояние "вечного цикла". Возникновение данной
> ошибки вызвано недочетами в архитектуре математического сопроцессора x87, выполняющего
> операции над действительными числами. Если приложение производит обработку действительных
> чисел на основе технологии и регистров SSE, то ошибка не возникает.Это всё следствия, а причина?
"Возникновение данной ошибки вызвано недочетами в архитектуре математического сопроцессора x87, выполняющего операции над действительными числами."
> "Возникновение данной ошибки вызвано недочетами в архитектуре математического
> сопроцессора x87, выполняющего операции над действительными числами."AMD, Cyrix, Intel - пофиг?
Сопроцессор может быть установлен при любой архитектуре
> Сопроцессор может быть установлен при любой архитектуреНу ваще-то AMD славилась тем, что выпускала процы без косяков Интела.
ребят чё спорите откройте исходник и посмотрите что такое -mfpmath=sse/* Copy of the contents of xpfpa.h (which is under public domain)
32 See http://wiki.php.net/rfc/rounding for details.
33
34 Cross Platform Floating Point Arithmetics
35
36 This header file defines several platform-dependent macros that ensure
37 equal and deterministic floating point behaviour across several platforms,
38 compilers and architectures.
39
40 The current macros are currently only used on x86 and x86_64 architectures,
41 on every other architecture, these macros expand to NOPs. This assumes that
42 other architectures do not have an internal precision and the operhand types
43 define the computational precision of floating point operations. This
44 assumption may be false, in that case, the author is interested in further
45 details on the other platform.
46
47 For further details, please visit:
48 http://www.christian-seiler.de/projekte/fpmath/
49
50 Version: 20090317 */
51
52 /*
53 Implementation notes:
54
55 x86_64:
56 - Since all x86_64 compilers use SSE by default, it is probably unecessary
57 to use these macros there. We define them anyway since we are too lazy
58 to differentiate the architecture. Also, the compiler option -mfpmath=i387
59 justifies this decision.
60
61 General:
62 - It would be nice if one could detect whether SSE if used for math via some
63 funky compiler defines and if so, make the macros go to NOPs. Any ideas
64 on how to do that?
65
66 MS Visual C:
67 - Since MSVC users tipically don't use autoconf or CMake, we will detect
68 MSVC via compile time define.
69 */
> ребят чё спорите откройте исходник и посмотрите что такое -mfpmath=sse
> /* Copy of the contents of xpfpa.h (which is under public domain)
> 32 See http://wiki.php.net/rfc/rounding for details.Да это всё понятно. Интересен аппаратный косяк.
Видимо не без всех косяков :)