1.2, Аноним (-), 00:45, 10/06/2012 [ответить] [﹢﹢﹢] [ · · · ]
| –25 +/– |
Вот что ты получаешь, если используешь язык программирования родом из 70-х, в котором, даже простейший булев тип, приходится сооружать из дерьма и палок.
| |
|
2.11, pavlinux (ok), 02:59, 10/06/2012 [^] [^^] [^^^] [ответить]
| +13 +/– |
Вот что получаешь, когда начинаешь выё...тся, понтоватся и создавать свои типы,
например my_bool. Ладно бы my_bool был бы int или Bool, так он же char.
| |
|
3.26, Аноним (-), 14:18, 10/06/2012 [^] [^^] [^^^] [ответить]
| –4 +/– |
В си нет типа Bool, есть _Bool или bool размер которого может быть и не int'ом. Морал простой - типы нужно приводить явно.
| |
|
4.44, Аноним (-), 01:07, 11/06/2012 [^] [^^] [^^^] [ответить]
| –1 +/– |
админоморда, хватит редактировать сообщения. Будешь за это гореть в аду
| |
4.45, pavlinux (ok), 04:22, 11/06/2012 [^] [^^] [^^^] [ответить]
| +/– |
> _Bool или bool размер которого может быть и не int'ом.
ISO/IEC 9899:201x
6.2.5 Types
An object declared as type _Bool is large enough to store the values 0 and 1.
6.3.1.1 Boolean, characters, and integers
— The rank of _Bool shall be less than the rank of all other standard integer types.
То есть уже по стандарту, Bool, максимум может быть (SHRT_MAX-1), т.е. (2^8/2-1)-1 = 32766;
> Морал простой - типы нужно приводить явно.
Приведение типов только для лохов! :)
| |
|
|
2.17, arisu (ok), 12:30, 10/06/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
ну так не пиши на этом мерзком языке, запили свой обалденный язык. тебе мешает кто-то, что ли?
| |
|
|
4.29, arisu (ok), 15:13, 10/06/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Не, лучше не надо, хватит уже.
а вдруг выйдет что-то действительно крутое и гениальное?
| |
|
|
2.55, Аноним (-), 03:47, 12/06/2012 [^] [^^] [^^^] [ответить]
| +/– |
Вот, что получается, когда руки из *опы и мозгов ноль. Ну и про выпендрёж выше верно замечено.
| |
|
1.3, Аноним (-), 00:48, 10/06/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
осталось подобрать 300 паролей хэш которых увеличивается на 1...
интересная уязвимость впредь буду думать...
| |
|
2.9, Аноним (-), 01:50, 10/06/2012 [^] [^^] [^^^] [ответить]
| +/– |
Совершенно не обязательно. Достаточно 300 разных(!).Зачем подбирать их по порядку? Если получится зайти - сразу увидишь.
| |
|
1.4, Аноним (-), 00:52, 10/06/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
знающие люди, почему BSD не подвержена? там по другому приводятся типы?
| |
|
|
3.12, pavlinux (ok), 03:09, 10/06/2012 [^] [^^] [^^^] [ответить]
| +/– |
> Предпосылкой к возникновению проблемы является возможность возвращения
> некоторыми реализациями memcmp() произвольных целых значений, не попадающих
> в диапазон -128..127.
Ткните меня мордой !!! Где написано что memcmp() должно возвращать от -128 до 127 ????
IEEE Std 1003.1-2008
http://pubs.opengroup.org/onlinepubs/9699919799/functions/memcmp.html
ISO/IEC 9899:201x
7.24.4.1 The memcmp function
Synopsis
1 #include <string.h>
int memcmp(const void *s1, const void *s2, size_t n);
Description
2 The memcmp function compares the first n characters of the object pointed to by s1 to
the first n characters of the object pointed to by s2.
Returns
3 The memcmp function returns an integer greater than, equal to, or less than zero,
accordingly as the object pointed to by s1 is greater than, equal to, or less than the
object pointed to by s2.
Почему в BSD по другому?!
| |
|
4.18, arisu (ok), 12:32, 10/06/2012 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Ткните меня мордой !!! Где написано что memcmp() должно возвращать от -128
> до 127 ????
да нигде. и strcmp() тоже не обязана. но кто ж эти дурацкие документации читает-то? а потом возникают вот такие школьные «уязвимости». или вонь про то, что memcpy() «поломали».
| |
|
|
|
1.13, Аноним (-), 03:47, 10/06/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
Эпично, что тут скажешь. my_bool вообще доставило.
ЗЫ Вы всё ещё используете MySQL? Тогда слоник идёт к вам...
| |
1.14, im (??), 03:54, 10/06/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Забыли добавить из оригинальной новости:
All MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5, 5.5.22 are
vulnerable.
| |
|
2.51, анонимно (?), 19:27, 11/06/2012 [^] [^^] [^^^] [ответить]
| +/– |
Пробовал убунту 12.04 64-битную, мускул 5.5.22 - не пускает и через 1к попыток.
| |
|
1.15, Йух (??), 06:18, 10/06/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> Например, реализации memcmp() из BSD libc и GCC не подвержены проблеме, а оптимизированная с использованием SSE-инструкций реализации memcmp() из Linux Glibc подвержена проблеме (GCC обычно использует собственную реализацию).
Интересно, я один после этих слов вспомнил срачик Линуса и Ульриха по поводу memcpy()? :))
| |
|
2.16, Аноним (-), 09:16, 10/06/2012 [^] [^^] [^^^] [ответить]
| +/– |
А причём здесь memcpy()? Там всё дело в кастомном типе my_bool (lol), к которому приводиться результат выполнения memcpy. А так как memcpy возвращает int то иногда возникают проблемы при кастинге из "большего" типа в "меньший". Так что я вижу тут только проблему индусов.
| |
|
3.20, Йух (??), 13:06, 10/06/2012 [^] [^^] [^^^] [ответить]
| +/– |
Там тоже оптимизации под SSE "поломали" поведение функции.
в случае memcpy() - это происходило на пересекающихся областях и по стандарту это Undefined behavior, а индусы из Adobe заложились на определенное поведение функции.
в этом случае в стандарте ничего не говорится что значения будут укладываться в диапазон -128..127, a приведение типов иногда дает 0
т.е. и тут и там проблема в индусах, [TROLL] но интересно, потребует ли тут Линус изменить поведение glibc [/TROLL]
| |
|
2.19, arisu (ok), 12:33, 10/06/2012 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Интересно, я один после этих слов вспомнил срачик Линуса и Ульриха по
> поводу memcpy()? :))
а разве был срачик? линусу сказали, что он дебил. линус утёрся и убежал рассказывать, как он круто всех победил.
| |
|
|
|
|
Часть нити удалена модератором |
6.32, R (?), 16:47, 10/06/2012 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Один из них ты. Ущербный мозг не может знать что такое defacto
> стандарт.
Ну, во-первых, "de facto", а во-вторых - http://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0
И еще: практика показывает, что нежелание читать и, что важнее, ПОНИМАТЬ документацию часто приводит к необходимости в новых версиях городить "костыли" для поддержки некогда некорректно написаного софта. Таким образом, получаем замкнутый круг. Яркий пример - экосистема Windows. Посмотрите, как в WINE вместо реализации функций по документации приходится воспроизводить "особенности" оригинальной реализации, так как прикладные программы эти самые "особенности" используют во всю. И это же является причиной неработоспособности части программ, написанных "типа крутыми прогерами, которым чихать на документацию" и использующих "недокументированные" функции, в официально выпущенных новых версиях ситем от Microsoft - вспомните сколько воплей было по поводу VISTA, а потом и "семерки"!
Вы считаете это правильным и хотите иметь такую же ситуацию в UNIX?
| |
|
7.34, Аноним (-), 16:53, 10/06/2012 [^] [^^] [^^^] [ответить]
| +/– |
он обычный php быдлокодер, у него нет никаких осознанных 'хочу'. Всё делается спинным мозгом
| |
|
|
|
|
|
|
1.42, Аноним (-), 20:03, 10/06/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
"На 1 000 000 000-й попытке сервер согласился что пароль - Мао Цзэдун"
| |
|
2.49, Вредоносный (ok), 17:53, 11/06/2012 [^] [^^] [^^^] [ответить]
| +/– |
$ mysql --version
mysql Ver 14.14 Distrib 5.5.22, for debian-linux-gnu (x86_64) using readline 6.2
Чего-то не могу вломиться на свой локалхостик. Не пущает :(
| |
|
3.56, Аноним (-), 03:50, 12/06/2012 [^] [^^] [^^^] [ответить]
| +/– |
> mysql --version
mysql Ver 14.14 Distrib 5.1.56, for slackware-linux-gnu (x86_64) using readline 5.1
Тоже не получилось. Версия слаки - 13.37
| |
|
|
1.57, Nas_tradamus (ok), 11:15, 13/06/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Во 64bit FreeBSD не сработало:
for i in 'jot - 1 1000'; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
| |
|