1.1, A.Stahl (?), 12:35, 28/11/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Сначала я подумал, что они хотят бороться с невнимательными разработчиками бамблби (или кто там с помощью лишнего пробела в скрипте корень удалял?).
А потом совсем не понял...
printf(%i,&data); С таким бороться что ли будут? И как?
Кто в курсе произошедшей драмы?
| |
|
2.5, Аноним (5), 12:52, 28/11/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
printf(str);
В str может не оказаться null-терминального символа. А как бороться собрались ХЗ.
| |
|
3.38, Аноним (-), 19:13, 28/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
Ты удивишься, но
printf("%s", str);
в str тоже может не оказаться null-терминального символа.
Смысл уязвимостей форматной строки в другом - в printf(str) в str могут оказаться произвольные символы форматирования, благодаря чему можно читать память процесса.
| |
3.48, dxd (?), 03:35, 29/11/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
Видимо, будут добавлять printf_s и scanf_s а ля студия. И депрекейтить старые версии.
| |
|
|
3.7, Аноним (5), 12:55, 28/11/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
Кроме scanf могут быть все функции, использующие форматные строки.
| |
|
2.10, kurokaze (ok), 13:17, 28/11/2013 [^] [^^] [^^^] [ответить]
| +3 +/– |
Что, man gcc набрать и поиск по / сделать религия запрещает?
-Wformat-security
If -Wformat is specified, also warn about uses of format functions that represent
possible security problems. At present, this warns about calls to "printf" and
"scanf" functions where the format string is not a string literal and there are no
format arguments, as in "printf (foo);". This may be a security hole if the format
string came from untrusted input and contains %n. (This is currently a subset of
what -Wformat-nonliteral warns about, but in future warnings may be added to
-Wformat-security that are not included in -Wformat-nonliteral.)
| |
|
3.14, A.Stahl (?), 13:48, 28/11/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
По-хорошему это должно быть в тексте новости.
А то так можно дойти и до пустых сообщений вместо новостей -- мол, тот, кому интересно, сам найдёт:)
| |
|
4.18, arisu (ok), 14:04, 28/11/2013 [^] [^^] [^^^] [ответить]
| –4 +/– |
> А то так можно дойти и до пустых сообщений вместо новостей —
> мол, тот, кому интересно, сам найдёт:)
это было бы идеально. потому что неуважаемые пиривотчики новостей здесь английский понимают примерно на уровне моих котов, и поэтому в большинстве случаев новости творчески сочиняют. в итоге хорошо, если получается хотя бы «не совсем то» — но часто получается и вовсе по смыслу противоположное оригиналу.
| |
|
5.21, Аноним (-), 14:20, 28/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
Кстати, ты вручную в цитируемом тексте заменяешь двойной дефис на длинное тире?
| |
|
6.22, arisu (ok), 14:22, 28/11/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Кстати, ты вручную в цитируемом тексте заменяешь двойной дефис на длинное тире?
нет, конечно: у меня userjs, который все поля ввода обрабатывает. вписывать туда исключение для опеннетовских цитат мне лень, поэтому цитаты он тоже правит. может, когда-нибудь лень поборю и добавлю фичку.
| |
|
7.28, Аноним (-), 15:48, 28/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> Кстати, ты вручную в цитируемом тексте заменяешь двойной дефис на длинное тире?
> нет, конечно: у меня userjs, который все поля ввода обрабатывает.
А замену ":)" и ":-)" на анимированные смайлики он поддерживает?
| |
|
|
|
|
|
4.41, Аноним (-), 21:22, 28/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> man gcc не соответствует DFSG, и выпилен :-)
Что, даже из non-free не поставить?
| |
|
|
|
3.27, Аноним (-), 15:47, 28/11/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Не корень. Всего-то /usr
Ну да, это сильно меняет дело. Потери /usr система даже не заметит.
| |
|
|
|
|
3.49, dxd (?), 03:36, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> -Werror -ansi -pedantic ибо нех..я выйопываться
-pedantic-erros забыл. И -ansi - не лучшее решение, лучше -std=c99
| |
|
4.50, arisu (ok), 03:51, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> -std=c99
-std=gnu99. больные на голову пуристы идут по грибы.
| |
|
5.67, dxd (?), 14:33, 29/11/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> -std=c99
> -std=gnu99. больные на голову пуристы идут по грибы.
GNU вендорлок такой не вендорлок...
| |
|
6.68, arisu (ok), 14:46, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> GNU вендорлок такой не вендорлок…
если на твоей системе нет gcc — то это такая яростная маргинальщина, что проблемы её двух с половиной пользователей вообще никого не интересуют.
| |
|
7.77, Аноним (-), 19:42, 29/11/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> GNU вендорлок такой не вендорлок…
> если на твоей системе нет gcc — то это такая яростная маргинальщина,
msvc - это не маргинальщина, а мейнстрим. И что важно - никаких вендор-локов, все открыто и свободно!
| |
7.83, dxd (?), 22:23, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
Стандарты de facto - это всегда плохо. Если gnu99(или gnu11) станет стандартом de jure, я буду только за. Но до того - спасибо, не надо.
| |
|
8.84, arisu (ok), 22:26, 29/11/2013 [^] [^^] [^^^] [ответить] | +/– | я как-то старый уже, и считаю, что суббота для человека, а не человек для суббот... текст свёрнут, показать | |
|
|
|
|
|
|
|
1.11, karapuz2 (ok), 13:19, 28/11/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +7 +/– |
Окей. Вся наша жизнь - борьба. Представляю батхерт у нечистоплотных авторов апстрима, когда к ним такие патчи придут. Компайл-тайм анализ - это хорошая штука на настоящий момент, достаточно проработанная и ненапряжная для конечных пользователей. В связи с конкуренцией компиляторов (clang, gcc) и такими вот административными мерами, массово улучшается код прикладных программ.
Пусть пока это и довольно формально, логические баги в ПО это не пофиксит, но заставляет программистов держаться в тонусе и меньше говнокодить.
| |
1.20, Pulfer (ok), 14:19, 28/11/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
В Mandriva/ROSA/Mageia уже много лет этот флаг по умолчанию используется, а Fedora что-то только сейчас "созрела"...
| |
|
2.29, Stax (ok), 15:54, 28/11/2013 [^] [^^] [^^^] [ответить]
| +8 +/– |
Видимо только Mandriva/ROSA/Mageia не потрудились вернуть в апстрим исправления для приложений, позволяющие их собрать с этим флагом. В отличие от федоры, которая обычно это пробивает (тоже не всегда, но по моим наблюдениям чаще). Иначе чем можно объяснить 400 пакетов, которые отказались собираться в федоре после включения флага? Не тем же, что их вообще нет в мандриве (по моим наблюдениям, пакетная база у них точно не уступает федоре).
Так что даже если мандрива была первой, а федора созрела только сейчас, важнее, чтобы нашли ошибки и исправили их в апстриме. Флаг gcc - не самоцель, куда важнее отсутствие багов..
| |
|
3.37, Pulfer (ok), 18:59, 28/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
Да, есть такое - именно этот тип патчей в апстрим никогда не отправлял, хотя не один десяток написал за несколько лет... Из-за представления, что там это никому не надо, иначе бы сами уже давно поправили (это тривиально делается и быстро).
| |
|
4.40, Аноним (-), 21:21, 28/11/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Да, есть такое - именно этот тип патчей в апстрим никогда не отправлял
А этот тип случайно не думал пойти работать в каноникал? Там такое любят.
| |
4.42, myhand (ok), 23:18, 28/11/2013 [^] [^^] [^^^] [ответить] | –4 +/– | Как будто другой тип - кто-то отправлял ROSA-же, какой еще тут апстрим ... большой текст свёрнут, показать | |
|
|
|
7.61, Pulfer (ok), 13:31, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Я не вижу как этот баг вообще связан с росой
Это уже похоже на троллинг. Если один из мейнтейнеров Росы заводит баг, появившийся в Phonon 4.7.0 по невнимательности разработчика из апстрима, чтобы отправить свой патч разработчику, то этот баг с Росой никак не связан? Нда уж...
| |
|
8.69, myhand (ok), 18:00, 29/11/2013 [^] [^^] [^^^] [ответить] | –3 +/– | Я не вижу там мейнтейнера Росы Прикажете опознавать его по нику, известному ка... текст свёрнут, показать | |
|
9.72, Pulfer (ok), 18:46, 29/11/2013 [^] [^^] [^^^] [ответить] | +/– | Вообще-то там тот же ник, что и здесь И почему-то выше в треде навыков опознани... текст свёрнут, показать | |
|
|
|
|
5.63, Аноним (-), 14:18, 29/11/2013 [^] [^^] [^^^] [ответить] | +/– | 40 библиотек дебиана - это сопоставимо с репами федоры А остальные 60 просто ... большой текст свёрнут, показать | |
|
6.64, Аноним (-), 14:19, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> И да, "этот тип патчей" - регулярно отправляют в апстрим, можете проверить по истории багов.
> Пруфы в студию!
Желательно хотя бы по четверти из этих 40%, т.е. 10% библиотек дебиана.
| |
|
|
|
9.81, myhand (ok), 20:44, 29/11/2013 [^] [^^] [^^^] [ответить] | +/– | Повторяю, ради придурка, который не умеет читать самостоятельно предложенные мат... текст свёрнут, показать | |
|
|
|
6.70, myhand (ok), 18:25, 29/11/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> 40% библиотек дебиана - это сопоставимо с репами федоры.
Возможно. Если судить по общему соотношению пакетов, f19 - вроде бы 14504. Это ~40% от общего числа пакетов Debian Wheezy.
Вот только в Debian это уже было сделано два года назад...
> А остальные 60% просто dead/unmaintained.
Прям так валшебным образом попадают в релиз, минуя сборку buildd и проч. Дети такие наивные...
>> И да, "этот тип патчей" - регулярно отправляют в апстрим, можете проверить по истории багов.
> Пруфы в студию!
Зачем тратить время на того, кто не смог изучить подсунутые под нос баги?
>> Я что-то пропустил и Fedora уже успела потрудиться, толком даже не исправив
>> своих FTBFS (подавляющая часть которых давно исправлена тем же Debian)?
> Попытка запуска apt-build world на почти любой реальной системе наглядно показывает, что
> FTBFS - это девиз проекта Debian.
На "реальных системах" не используют заброшенные пакеты, а пользуются нормальными инструментами для установки/сборки. И тем более, не превращают бинарный дистрибутив в недогенту.
| |
|
7.75, Аноним (-), 19:39, 29/11/2013 [^] [^^] [^^^] [ответить] | +/– | Ага Осталось еще сопоставить общее количество пакетов с количеством _библиотек_... большой текст свёрнут, показать | |
|
8.82, myhand (ok), 20:48, 29/11/2013 [^] [^^] [^^^] [ответить] | +/– | Имбецил Да, я так прямо и написал - сравниваю соотношение общего количества па... текст свёрнут, показать | |
|
|
|
|
|
|
|
1.33, Igor (??), 17:37, 28/11/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Это гуд!
Попробовал:
1: #include <stdio.h>
2: int main()
3: {
4: double d = 1.5;
5: printf("%d\n", d);
6: return 0;
7: }
Если компилить без "-Wformat -Wformat-security", то компиляция пройдет нормально.
С этими опциями будет предупреждение на строке 5.
| |
|
|
|
4.36, arisu (ok), 18:09, 28/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Наше кредо - ВСЕГДА!
тогда я не понимаю, чему ты так удивлён.
| |
|
3.52, linux must __RIP__ (?), 09:53, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
-W -Wall -Werror -pedantic после чего долго офигевать от того насколько криво пишут софт :-)
hint - ядро Linux с этими флагами не соберется.
| |
|
2.55, Archer73 (ok), 10:06, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
Интересно. В mingw с gcc 4.6.2 под форточками этот пример собирается без всяких ошибок
gcc --version
gcc.exe (GCC) 4.6.2
Copyright (C) 2011 Free Software Foundation, Inc.
Это свободно распространяемое программное обеспечение. Условия копирования
приведены в исходных текстах. Без гарантии каких-либо качеств, включая
коммерческую ценность и применимость для каких-либо целей.
cat test1.c
#include <stdio.h>
int main (int argc, char *argv[]){
double d = 1.5;
printf("%d\n", d);
return 0;
}
make
cc -g -std=c99 -Wall -Werror -pedantic -pedantic-errors -Wformat -Wformat-security test1.c -o test1
test1.exe
0
| |
|
3.79, dq0s4y71 (ok), 19:52, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
$ gcc --version
gcc.exe (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ cat test.c
int main (int argc, char *argv[]){
double d = 1.5;
printf("%d\n", d);
return 0;
}
$ gcc -std=c99 -Wall -Werror -pedantic -pedantic-errors -Wformat -Wformat-security test.c -o test
test.c: In function 'main':
test.c:3:3: error: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
printf("%d\n", d);
^
test.c:3:3: error: incompatible implicit declaration of built-in function 'printf' [-Werror]
test.c:3:3: error: format '%d' expects argument of type 'int', but argument 2 has type 'double' [-Werror=format=]
cc1.exe: all warnings being treated as errors
| |
3.85, Ytch (ok), 23:25, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> -Wall -Werror -pedantic -pedantic-errors -Wformat -Wformat-security
-Wall вроде уже включает -Wformat?
Если есть -pedantic-errors, то зачем ещё и -pedantic? для драматизма?
-Wextra ещё можно добавить
| |
|
|
1.47, pavlinux (ok), 02:34, 29/11/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
-Werror=format-security
Ща программеры начнут любыми способами убирать эти ошибки,
вплоть до тупейшего явного преобразования типов, лишь бы собралось
printf("%d", (int)1.0f):
Короча, ждём новых дыр в фидоре!
| |
|
2.51, arisu (ok), 03:52, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Ща программеры начнут любыми способами убирать эти ошибки,
> вплоть до тупейшего явного преобразования типов, лишь бы собралось
а ведь так и будет…
| |
|
3.54, linux must __RIP__ (?), 09:55, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> Ща программеры начнут любыми способами убирать эти ошибки,
>> вплоть до тупейшего явного преобразования типов, лишь бы собралось
> а ведь так и будет…
намек на OpenSSL & Debian? от которого теперь пол интернету икается :-)
| |
|
4.66, Аноним (-), 14:26, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> намек на OpenSSL & Debian? от которого теперь пол интернету икается :-)
Это же знаменитый проект Debian Security Hardening!
И еще хорошо, что конкретно этот патч они поленились в апстим пропихивать...
| |
|
|
2.53, linux must __RIP__ (?), 09:54, 29/11/2013 [^] [^^] [^^^] [ответить]
| –3 +/– |
> -Werror=format-security
> Ща программеры начнут любыми способами убирать эти ошибки,
> вплоть до тупейшего явного преобразования типов, лишь бы собралось
> printf("%d", (int)1.0f):
> Короча, ждём новых дыр в фидоре!
да лана.. разве могут православные GNU программисты так поступать? там же сплошь профессионалы котоые одним глазом все ошибки замечают :)
| |
|
3.86, pavlinux (ok), 03:32, 01/12/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> Короча, ждём новых дыр в фидоре!
> да лана.. разве могут православные GNU программисты так поступать? там же сплошь
> профессионалы котоые одним глазом все ошибки замечают :)
Хер бы с фидорой, но эти школьники тянут свои гадкие ручёнки почти ко всем проектам.
Суют корявые патчи в багтрекеры. Хорошо если майнтейнер проекта адекватный и есть время
для проверки. А если ленивый? Увидит, что 25 фидорасов щастливы от этого патча и пустит
в мэйнстрим.
| |
|
|
1.59, z (??), 13:04, 29/11/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Набежало петросянов...
По большей части самое опасное это:
1) прямой ввод-вывод форматных строк вида printf(s)
2) несоответствие размеров аргументов
| |
1.73, Аноним (-), 19:03, 29/11/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
да вы че, смеетесь, зачем это в новостях
федора компиляет с новым флагом(и отнюдь не самым-самым), о-ло-ло, сенсация, зачем только по ссылке ходил
| |
|
2.76, Аноним (-), 19:41, 29/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> федора компиляет с новым флагом(и отнюдь не самым-самым), о-ло-ло, сенсация, зачем только по ссылке ходил
Федора, пфф! Вот когда Убунта даже не компиляет, а только собирается запланировать возможно начать компилять - это сенсация мирового уровня!
| |
|
|