Comments 94
Вот если честно, то вспоминается поговорка про дурака и стеклянный фаллоимитатор.
Т.к. положить можно что угодно умеючи. А задача программиста как раз в обратном.
Т.к. положить можно что угодно умеючи. А задача программиста как раз в обратном.
+3
т.е. я имею ввиду нужно знать такие вещи, чтобы не допустить падения наших творений, на то мы и программисты. :)
0
Дело в том, что ошибка именно на уровне PHP. И сосед по shared-хостингу сможет положить весь сервер.
+4
дурное дело не хитрое
из личного опыта
лишняя точка с запятой нечаяно затесавшаяся при копи пейсте в SQL запрос может не хило так нагрузить сервер у хостера.
из личного опыта
лишняя точка с запятой нечаяно затесавшаяся при копи пейсте в SQL запрос может не хило так нагрузить сервер у хостера.
+5
Нормального хостера — не может. Рухнет воркер, работающий с правами юзера, при след. коннекте перезапустится назад. Все.
+2
А вот интересно кому в голову приходит так вызывать конструктор родительского класса
call_user_func_array(array($this, «parent::__construct»), $args);
Я думаю, что при грамотном проектировании программист должен представлять себе что именно ему пихает в конструктор класса
call_user_func_array(array($this, «parent::__construct»), $args);
Я думаю, что при грамотном проектировании программист должен представлять себе что именно ему пихает в конструктор класса
+3
говорят что это не баг, а просто неверное использование функции.
Возможно они правы, ведь никто вам не запрещает например устроить в своём коде бесконечную рекурсию с использованием системных интерфейсов( пример. подписка на событие и действие внутри обработчика приводящее к повторному вызову этого же события )
Возможно они правы, ведь никто вам не запрещает например устроить в своём коде бесконечную рекурсию с использованием системных интерфейсов( пример. подписка на событие и действие внутри обработчика приводящее к повторному вызову этого же события )
+1
Это баг, т.к. тут неверная работа с указателем в движке PHP.
+5
закройте глаза и считайте это фичей «экстренного завершения воркера», принимая платформу вы принимаете идеологию её разработчиков.
-1
Так там не с указателями дело. Судя по всему, стек весь выедается. Хотя, почему оно от этого сегфолтится, не вполне ясно.
0
такие вещи не должны приводить к segfault
+4
Лучше б они просто кинули Exception, а не убили воркер
+2
Чем-то ситуация напоминает ситуацию с браузером internet explorer: там то же разработчики утверждают, что они не делали баги, а создавали фичи.
+3
А вот я вам еще баг нашел!
АААА! Сегфолт! Подвержены все компиляторы С и С++!
int main(int, char*[])
{
char *abc = 0;
*abc = 'a';
}
* This source code was highlighted with Source Code Highlighter.
АААА! Сегфолт! Подвержены все компиляторы С и С++!
+6
Это ошибка кода и она влияет только на эту программу. Среда исполнения(ОС) при этом не падает.
-4
Вот если бы этот код от лица геста уронил бы систему в BSOD/kernel panic/etc — это был бы баг ОС.
+2
PHP интерпретируемый язык и интерпретатор полностью контролирует, что у него с памятью происходит и должен не рушиться, а писать ошибку. Вам К.О.
+21
В чем тут DOS-то заключается?
+9
Один из пользователей shared-хостинга может убить сервер.
0
Как должна работать связка php+сервер, чтобы один из пользователей мог убить сервер? Если php работает как cgi, то умрет пхп-шный процесс, а сервер вернет что-то вроде Internal Server Error. Если php как модуль, то он утянет за собой и один из серверных рабочих процессов, и пользователю, вероятно, ничего не вернется. Но головной процесс сервера ведь останется, или я не прав? Есть еще какие-то распространенные подходы к связыванию php с веб-сервером на шаред-хостингах?
+3
Апач тридед умрет полностью.
Апач префорк — умрет только воркер.
Апач префорк — умрет только воркер.
0
Prefork, ITK, peruser, woker — не подвержены, остальных я на хостинговых серверах не видел. Даже если упадет апач (чудом) — его поднимет мониторинг тут же.
Повторюсь, если мы говорим о нормальных хостерах.
Повторюсь, если мы говорим о нормальных хостерах.
+3
DoS — это не «убить сервер», это отказ в обслуживании сервиса. В данном случае тут есть отказ в обслуживании php.
Апач конечно оно не уронит, ни в mod, и в fast-cgi режиме.
Апач конечно оно не уронит, ни в mod, и в fast-cgi режиме.
0
Возможно автор имел в виду DDoS шаред-хостинга с помощью этой «фичи».
-5
а DoS тут заключается в том, что Denial of Service это отказ в обслуживании.
выполнив на shared-хостинге вышеприведенный код как раз отказ в обслуживании и получится.
выполнив на shared-хостинге вышеприведенный код как раз отказ в обслуживании и получится.
-3
Отлично, если это фича, а не баг, то почему в 5.2.10 ее нет?
+1
+53
Да весь php это и есть большой баг
-37
ну, это уже просто праздник какой-то! %)
0
Да ну, как раз вполне логичное поведение. Маны читайте.
+1
Вы же сами выбираете такую локаль, тогда чему удивляться? PHP делает точно то что Вы от него требуете.
-1
ага, а number_format это типа алиас к дефолтному поведению?
0
number_format — это не алиас, а функция форматирования. Дефолтного поведения нет, вы всегда имеете то что заказываете. В конце концов, если ленитесь указать правильную локаль — кто виноват?
0
в данном случае этот принцип как раз нарушен, я хочу передать в JS или в SQL float, просто через конкатенацию, но не могу, ну вы поняли что 'INSERT… '. (float)$val; для многих локалей выдаст еррор?
я считаю что абсолютно противоестественно приводить числа к строкам по умолчанию с учетом локали, но даже не просто локали а «как-то так» только с учетом точки но игнорируя десятичные разделители и позицию знака. я не понимаю почему
echo 5.1;
мне должно для русской локали выдать 5,1
я считаю что абсолютно противоестественно приводить числа к строкам по умолчанию с учетом локали, но даже не просто локали а «как-то так» только с учетом точки но игнорируя десятичные разделители и позицию знака. я не понимаю почему
echo 5.1;
мне должно для русской локали выдать 5,1
0
Ну как бы это знания математики уровня 5-6 класса. Именно тогда проходят десятичные дробные части. И отделяются они через ",".
Пример: задайте дробгый размер шрифта в русскоязычной версии Word, а потом в англоязычной. Естестыенно это будут "," и "." соответственно.
Пример: задайте дробгый размер шрифта в русскоязычной версии Word, а потом в англоязычной. Естестыенно это будут "," и "." соответственно.
0
спасибо молодой человек, это однозначно полезная инфа, если отделяются запятой чего-ж вы в коде не через запятую пишите?
ексель кроме всего прочего еще и пробелами труппы разделит и для некоторых локалей знак минус сзади поставит, чего-ж пых так не делает?
ексель кроме всего прочего еще и пробелами труппы разделит и для некоторых локалей знак минус сзади поставит, чего-ж пых так не делает?
0
> если отделяются запятой чего-ж вы в коде не через запятую пишите?
Это синтаксис. По синтаксису отделяется точкой.
А вот вы делаете процедуру преобразования в строку. Тут в зависимости от локали.
По секрету скажу, что в .NET при преобразовании строки в дабл та же самая особенность. Это нормально, это не только в PHP так.
Это синтаксис. По синтаксису отделяется точкой.
А вот вы делаете процедуру преобразования в строку. Тут в зависимости от локали.
По секрету скажу, что в .NET при преобразовании строки в дабл та же самая особенность. Это нормально, это не только в PHP так.
0
То что Вы считаете противоестественным для PHP делать то что Вы запрашиваете у PHP — это противоестественно :)
Вы указываете PHP выдавать числа с запятой. Почему Вы удивляетесь что он выдаёт числа с запятой, я не могу понять. Говорите выдавать с точкой, он будет выдавать с точкой. LC_NUMERIC=«C» укажите, например, или ещё что-то что понравится.
Вы указываете PHP выдавать числа с запятой. Почему Вы удивляетесь что он выдаёт числа с запятой, я не могу понять. Говорите выдавать с точкой, он будет выдавать с точкой. LC_NUMERIC=«C» укажите, например, или ещё что-то что понравится.
0
нет, я указываю пыху что когда я захочу форматировать числа с учетом локали (number_format) он будет это делать правильно, подменяете понятия.
вы считаете (без фанатизма, я тоже пых люблю) что логично делать более простую операцию (приведение) гараздо сложнее чем ее-же с учетом внешних сведений (локали)?
Если пых приводит числа к строке с учетом локали чего он не делает обратную операцию?
(float)((string)5.1) !== 5.1
вы считаете (без фанатизма, я тоже пых люблю) что логично делать более простую операцию (приведение) гараздо сложнее чем ее-же с учетом внешних сведений (локали)?
Если пых приводит числа к строке с учетом локали чего он не делает обратную операцию?
(float)((string)5.1) !== 5.1
+1
у меня php5 + apache2 на windows2003server иногда выдает 0,1, например, а бывает временами и 0.1
вот где чудеса.
вот где чудеса.
0
Спасибо
Проверю в понедельник на работе :)
Проверю в понедельник на работе :)
0
имхо, либо фаталка должна выскакивать, либо работать по-человечески(
Что то в последнее время разработчики Пыха какие то не адекватные стали(((
сегфолт для скриптового языка — это могила (((
Что то в последнее время разработчики Пыха какие то не адекватные стали(((
сегфолт для скриптового языка — это могила (((
0
Буквально позавчера видел сей баг при попытке осознать почему у меня не работает кохана.
0
К слову. У меня версия 5.2.10. Так что подвержен не только 5.3
0
UFO just landed and posted this here
Ты за эти слова заплатишь, сынок.
-16
Примеры — в студию.
0
Вообще-то PHP иногда падает на вообще безобидном коде, если использовать с eAccelerator, к примеру.
Просто на это обычно пофигу, ибо воркеры и так умирают со временем.
Просто на это обычно пофигу, ибо воркеры и так умирают со временем.
0
В заметке — речь про PHP как *язык*, а не про разные надстройки и ускорители.
myserg обмолвился, что таких багов (подразумевая язык) — валом. Так что повторю просьбу — приведите примеры.
А то ведь, звиздеть — не мешки таскать…
myserg обмолвился, что таких багов (подразумевая язык) — валом. Так что повторю просьбу — приведите примеры.
А то ведь, звиздеть — не мешки таскать…
0
UFO just landed and posted this here
По багтрекинговым сайтам я хожу только тогда, когда возникают проблемы. С PHP, как с языком программирования, их пока не возникало. Были замечания по паре *библиотек*. Ну так ничто не совершенно.
Но вообще — написанные скрипты работают так, как задумано и написано. Что делаю не так?
Но вообще — написанные скрипты работают так, как задумано и написано. Что делаю не так?
0
UFO just landed and posted this here
Делаю много, давно и плодотворно.
+2
UFO just landed and posted this here
Писать код без использования is_a() — это значит делать что-то «не то»? Странный критерий.
0
UFO just landed and posted this here
> И версия была 5.2.
Ну вот в мануале например вот что говорится:
5.0.0 This function became deprecated in favour of the instanceof operator. Calling this function will result in an E_STRICT warning.
И вы, кстати, так и не привили код(сказать is_a() вызывает баг недостаточно), который вызывает ошибку, и при этом обзываете человека «бараном»… ну что с вас взять…
Ну вот в мануале например вот что говорится:
5.0.0 This function became deprecated in favour of the instanceof operator. Calling this function will result in an E_STRICT warning.
И вы, кстати, так и не привили код(сказать is_a() вызывает баг недостаточно), который вызывает ошибку, и при этом обзываете человека «бараном»… ну что с вас взять…
+1
Дорогой Сережа, если тебе папа не объяснил, то скажу я. Первое: хамить не хорошо.
Второе: слушай, что тебе говорят и думай, прежде чем писать — alexshelkov наглядно показал, что чтение манов часто лучше чтения багтрекеров.
Всего хорошего.
Второе: слушай, что тебе говорят и думай, прежде чем писать — alexshelkov наглядно показал, что чтение манов часто лучше чтения багтрекеров.
Всего хорошего.
0
То что баг — бесспорно. Но. Зочем писать такой код????
-1
попробовал вариант автора… на сайт не повлияло.
хотя процесс был перезапущен, что дороговато. но и всё.
хостинг-провайдер поймает и убьёт )
хотя процесс был перезапущен, что дороговато. но и всё.
хостинг-провайдер поймает и убьёт )
0
пхп такой пхп…
-1
Вообще самый настоящий баг, почему должен валиться PHP при вызове родительского конструктора по умолчанию? Если бы так в C++/C#/Java было? это тоже нормально?
Помню историю с 5.2.0 версией, когда с легкого мановения руки один из завсегдатаев php-club.ru снес работу с передачей параметров в функции по ссылке и тоже говорили, что это нормально, да и правда, нафига передавать параметры в функцию по ссылке.
Помню историю с 5.2.0 версией, когда с легкого мановения руки один из завсегдатаев php-club.ru снес работу с передачей параметров в функции по ссылке и тоже говорили, что это нормально, да и правда, нафига передавать параметры в функцию по ссылке.
0
я лично считаю, что это баг. Но баг в том, что нужно генерировать notice об возможном неверном предположении области определения 'parent::x', ну уж ни в коем случае не обрушивать ничего…
0
Не в тему, но всё же: http://bugs.php.net/bug.php?id=48669
0
Fatal error: Maximum function nesting level of '100' reached, aborting! in D:\home\framework\www\phptest.php on line 6Хм, под виндой не падает.
0
Это 5.3?
А suhosin патч есть на пхп?
А suhosin патч есть на пхп?
0
Да, 5.3. Нет, откуда на девелоперской машине под виндой сухосин-патч… Но тем не менее виновато действительно расширение, на проверку оказалось ошибка выводится только с наличием xdebug, без оного не выводится ничего, однако кстати threaded апач не падает.
0
PHP периодически подбрасывает сюрпризы в самых неожиданных местах. Вот еще пара баго-фич в ZipArchive::open() ( pecl.php.net/bugs/bug.php?id=8714 ) и ZipArchive::addFile( pecl.php.net/bugs/bug.php?id=9443 ).
0
Sign up to leave a comment.
Articles
Change theme settings
PHP 5.3: DoS — это не баг, а фича