1.3, Аноним (3), 09:28, 05/11/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +10 +/– |
У сишника Пети было 128 байт в буфере. Маше он отдал 64, а Коле — оставшиеся 512.
| |
|
2.43, X86 (ok), 14:38, 05/11/2022 [^] [^^] [^^^] [ответить]
| –3 +/– |
А потом плюнул на все и установил нормальный язык программирования.
| |
|
3.45, Аноним (45), 15:00, 05/11/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
...и перепутал знаки больше-меньше при проверке индекса в буфере в FF.
| |
|
2.48, Аноним (45), 15:01, 05/11/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Маше он отдал 64, а Коле — оставшиеся 512
Очевидно, Петя больше любит Колю, а не Машу.
| |
|
3.50, ыы (?), 15:10, 05/11/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Неверно. Маша вообще не просила а ей дали, а Коля просил много больше а ему дали меньше, да еще и мусор...
| |
|
4.54, Аноним (45), 15:54, 05/11/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Маша вообще не просила а ей дали
типичная ситуация, Машу никогда не спрашивают, хочет она или нет.
| |
|
|
|
1.12, Аноним (12), 10:31, 05/11/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
Обожаю такие фиксы
- if (pixman_fixed_to_int (i) == 0x8000)
+ if (pixman_fixed_to_int (i) == 0xffff8000)
и как оно вообще работало...
А теперь срочно обновлять иксы и фаерфокс
| |
|
2.25, Аноним (25), 12:19, 05/11/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Выглядит так, будто это проклятие 32 бит и ленивые программисты. В данном случае тоже какое-то магическое число, хоть бы дефайн повесили для приличия, мало ли что там за платформа. А чё их обновлять,ты знаешь, что такое динамическая линковка? Закрыл программу, открыл заново, вот тебе уже и новая версия.
| |
|
3.26, Аноним (26), 12:21, 05/11/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
> В данном случае тоже какое-то магическое число
Ну, для скриптовиков оно магическое.
| |
|
4.29, Аноним (25), 12:31, 05/11/2022 [^] [^^] [^^^] [ответить]
| +12 +/– |
Действительно, скриптовики скорее всего понимают, что такое магическое число, и почему это плохо. А вот такие "я у мамы самый умный" -- нет. В итоге, имеем, что имеем.
| |
|
3.31, пох. (?), 12:47, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
А когда вместо 64 модными станут 128 - опять "ой, эксплойт!" Кто бы мог подумать и было ли ему - чем. А, впрочем, чего вы ждете от проекта, зохаванного rhbm...
| |
3.32, Аноним (12), 12:48, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Это если ставил из реп. А если в репах протухшая версия и ставил из AppImages/FlatPack/Snap... то сам виноват, но обновляться придется
| |
3.75, Ыыыыыы (?), 23:27, 05/11/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А чё их обновлять,ты знаешь, что такое динамическая линковка? Закрыл программу, открыл заново, вот тебе уже и новая версия.
Кхм, он растоман
| |
3.87, Бывалый смузихлёб (?), 10:28, 06/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
эти погромисты слишком заняты учением других о том как надо правильно кодить, соблюдать всевозможные стандарты, следовать определённому стилю кода и прочее
Нередко в небольших конторах у каких-то никому неизвестных продуктов качество кода сильно больше вот-этого-вот
Как минимум, почему-то даже средненький новичок в курсе что нельзя просто так какие-то специфические штуки хардкодить - они обычно выносятся либо дефайнами либо константами
А разрабы сабжа об этом даже не подозревают и их это совершенно не смущает как и практически всех крупных пользователей этой штуковины и вот это самое примечательное
| |
|
4.101, Аноним (101), 15:52, 06/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Покажите этим "погромистом" как надо программировать.
Пришлите исправление
| |
|
|
2.68, Аноним (68), 20:38, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
0x8000 это число на 1 больше максимального 16 битного числа со знаком.
А откуда 0xffff8000 взялось совсем не понятно. Возможно к 32х битному 0 прибавили -32768, в которое превратилось число 0x8000 при сохранении в 16битное число со знаком.
Может быть кто-нибудь типа n00by обьяснит что там происходит
| |
|
|
4.92, Аноним (92), 11:45, 06/11/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
>>> 0x80000000, превратиться в 0x8000, да только x знаковый и 0x80000000 <<<
Тут самое забавное, что сама по себе констатна (целочисленный литерал) 0x80000000 это как раз таки беззнаковое значение:)
| |
|
|
4.74, пох. (?), 23:15, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Правда тут проблемой может стать поддержка Microsoft Visual Studio до версии 2010, а так-же
> старых _SRV4, _sgi, __sun и прочих _AIX, у которых не известно есть-ли в <inttypes.h> или
> <sys/inttypes.h> такого рода лимиты.
#ifdef смузипоколению недоступен, про gnu configure умеющую проверять подобные вещи они тоже давно забыли, поняаааатно.
Проблема там, если кто не заметил, вот тут: (int) ((f) ...
int у нас - весь implementation defined, а не только его сдвиги.
Сколько после того сдвига будет впереди f'ок и будут ли - неочевидно совсем.
Так что прочими sgi можно было вообще не беспокоиться - на них этот код скорее всего работать все равно не будет.
| |
|
5.76, Аноним (68), 00:05, 06/11/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Возьмите и исправьте, если вы считаете себя умнее разработчиков
| |
|
6.84, пох. (?), 09:44, 06/11/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Возьмите и исправьте, если вы считаете себя умнее разработчиков
И весь остальной мир заодно, поскольку за что ни возьмись, сделано такими же руками и так же точно исправляется кривыми костылями в последний момент перед публикацией эксплойта?
Не, спасибо.
Эта война уже проиграна.
| |
|
7.97, Аноним (68), 14:59, 06/11/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
Просто честно признайтесь что не сможете написать лучше, хотя бы себе.
Не ссылайтесь на то что якобы нужно весь мир исправить
| |
|
8.105, Аноня (?), 02:28, 07/11/2022 [^] [^^] [^^^] [ответить] | +1 +/– | Он тебе только что объяснил, как там можно сделать лучше , но ты канючишь про ... текст свёрнут, показать | |
|
|
|
|
4.89, Аноним (92), 11:08, 06/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
>>> 32-х разрядное знаковое 0x80000000 <<<
0x80000000 и 0xffff8000 это unsigned!!!, вот так вот:) Это один из классических дебильных подводных камней языка Си:(
assert((0 - 0) - 1 < 0); // Ok
assert((0x80000000 - 0x80000000) - 1 < 0); // :( Упс!! здравстуй неяный unsigned
потому что это фактически тоже самое что:
assert(0U - 1 < 0); // здравстуй явный unsigned
| |
|
5.91, Аноним (92), 11:25, 06/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
В общем весь if получается какой-то странный... ибо так как 0xffff8000 это фактически 0xffff8000U, то левая часть выражения в if которая является судя по всему int-ом, то этот int сперва также к приводится к unsigned, и в конечном итоге стравниваются два значения unsigned! этого ли хотел автор кода я не знаю, не разбирался:)
| |
5.96, Аноним (72), 14:43, 06/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
> 0x80000000 и 0xffff8000 это unsigned!!!
Да, но в проблемном коде они хранятся в переменной int, и в int же кастится результат внутри pixman_fixed_to_int().
| |
|
6.98, Аноним (72), 15:10, 06/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Но, кстати, да: с учетом того, что в фиксе идет сравнение int именно с литералом 0xffff8000, то по идее делжен был выстрелить -Wsign-compare - если его включали, конечно.
| |
|
|
4.90, Аноним (-), 11:24, 06/11/2022 [^] [^^] [^^^] [ответить]
| +4 +/– |
> возможно более кореектно было-бы сравнить не с константой 0xffff8000, а с INT16_MIN из stdint.h, ещё лучше - завести константу pixman_min_fixed_16_16
Не, надо было определить операцию типа:
static inline
struct {
pixman_fixed_t result;
int overflow; // это не bool, это значение из множества {-1, 0, 1}
} pixman_fixed_add_with_overflow(pixman_fixed_t a, pixman_fixed_t b);
Такой подход позволяет инкапсулировать внутреннюю кухню pixman_fixed_t. То есть оторвать её от клиентского кода. То есть мало того, что криворукие программисты пишущие клиентский код имеют меньше шансов напортачить и всё перепутать, так ещё и перестановки кроватей во внутренней кухне будет проходить гораздо более безболезненно.
| |
4.99, Аноним (68), 15:29, 06/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Как хорошо что в java и kotlin 2 разных операции сдвига в право и нет этих неопределённостей даже с базовыми операциями.
Operation Name Java Operator Kotlin Int/Long Function
Conjunction (and) a & b a and b
Disjunction (or) a | b a or b
Exclusive disjunction (xor) a ^ b a xor b
Inversion ~ a a.inv()
Shift Left a << bits a shl bits
Shift Right a >> bits a shr bits
Unsigned Shift Right a >>> bits a ushr bits
| |
|
5.100, Аноним (101), 15:46, 06/11/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
Operation Name Java Operator Kotlin Int/Long Function
Conjunction (and) a & b a and b
Disjunction (or) a | b a or b
Exc. disjunction (xor) a ^ b a xor b
Inversion ~ a a.inv()
Shift Left a << bits a shl bits
Shift Right a >> bits a shr bits
Unsigned Shift Right a >>> bits a ushr bits
| |
|
|
|
2.108, Аноним (108), 12:39, 07/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
- if (pixman_fixed_to_int (i) == 0x8000)
+ if ((pixman_fixed_to_int (i) & 0xFFFF) == 0x8000)
| |
|
|
2.17, Аноним (25), 11:01, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
* These packages depend on x11-libs/pixman:
app-emulation/qemu-7.1.0
net-misc/spice-gtk-0.41
www-client/firefox-106.0.4
x11-base/xorg-server-21.1.4
x11-base/xwayland-22.1.5
x11-libs/cairo-1.17.6
x11-wm/enlightenment-0.25.4
| |
|
|
4.20, Аноним (25), 11:36, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Не знаю, может, и было. Но году эдак в 2005 уже всё на него было завязано. Тогда же cairo уже получил распространение. Тут вроде говорят в иксах он благодаря вейланду.
| |
|
5.21, Аноним (25), 11:39, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ну чтобы было понятно иксы тоже зависят от cairo. Видимо, в 2008 уже было.
| |
5.107, Zenitur (ok), 12:29, 07/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Мне тоже кажется, что 2005 год. Ведь именно тогда всё начали прибивать гвоздями ко второму гному. Подумать только, "иксы" зависят от Cairo, от гномовского компонента! Надеюсь, это не было основным отличием Xorg от XFree86?
| |
|
|
|
|
1.27, Аноним (24), 12:27, 05/11/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Шутки про Сишников и переполнение буфера уже даже не смешны)))
Столь часто эти эксперты и гуру оперирования байтами не в состоянии в подсчёте длины буфера.
| |
|
2.34, Аноним (12), 13:01, 05/11/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Конечно! Все что можно написать уже написано, а что еще не написано - это всё ваше смузихлебство!
Проекты на си практически идеальны, осталось всего лишь исправить пару мелких багов с памятью...
| |
2.59, Аноним (59), 18:12, 05/11/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Согласно закону Мёрфи, если буфер может быть переполнен — он будет переполнен. От квалификации программиста зависит только вероятность этого события.
| |
|
|
4.67, Аноним (59), 20:22, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Понятие «эмпирический закон» вам знакомо? И да, при всей шутейности он вполне серьёзен.
| |
|
3.63, Аноним (63), 19:19, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
От квалификации программиста, как мы можем видеть последние 50 лет, это никак не зависит.
| |
|
|
1.28, Аноним (24), 12:30, 05/11/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Новости про С - только про переполнение буфера и уязвимости. И никаких новостей про новые проекты)))
| |
|
2.36, Без аргументов (?), 13:14, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Это случайность. Они как блохи, не могут в созидание, рушат то, что есть, и паразитируют через unsafe.
| |
2.44, Аноним (44), 14:41, 05/11/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
Дураков нема - делать проекты на Си. Либо на плюсах, либо на растишке, либо на goвне, либо на пистоне, либо на Type-(мы скачаем и установим ворох бэкдоров с npm)-Scriptе, либо на Java. ВСЁ. Даже Cabron не у дел.
| |
|
|
2.38, Аноним (25), 13:19, 05/11/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
А ржавчина от этого по-моему и не спасёт кстати. Теперь вроде может на отладочном билде задетектить, но отладочный билд в 10000 раз медленнее работает и я не знаю кому он может пригодиться на практике, разве что для проверки уже обнаруженного и идентифицированного бага пригодится.
| |
|
3.39, Без аргументов (?), 13:26, 05/11/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
По плодам их узнаем им. Пока не вижу кроме Servo ничего такого. И какие-то крипты, которые пишут скорее опытные люди, а не любители преследовать сишников.
| |
|
4.42, Аноним (45), 14:29, 05/11/2022 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Пока не вижу кроме Servo ничего такого
Дак серво уже забыли в далёком 2019...
| |
|
|
6.53, Аноним (45), 15:52, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
квантум - это потомок геки. Не зря же бросили именно серво - от него фиг что получишь.
| |
|
7.80, Аноним (80), 01:05, 06/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
https://wiki.mozilla.org/Quantum
>> ... Quantum will leverage the fearless concurrency of Rust and high-performance components of Servo
>> ... Servo is a research project and doesn’t yet have all the functionality users expect from a full-featured web browser. By taking an incremental approach and merging proven components from Servo to Gecko as they are ready,
...
> квантум - это потомок геки. Не зря же бросили именно серво - от него фиг что получишь.
Очередной громкий, негодующий пук от растоподгорельцев.
| |
7.109, Kuromi (ok), 16:24, 07/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Квантум - это Гека в котором часть функционала (он модульный) заменили соотвествующей реализацией на rust.
Это примерно как в не самый новый ПК заменить старый HDD на новый SSD, вроде все стало шустрее, но есть предел прироста производительности + в каких-то задачах прироста производительности нет вообще.
| |
|
|
|
4.57, Аноним (57), 17:53, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Фанатизм так велик что кто-то верит в существование продового Серво?
| |
|
|
|
1.41, An2 (?), 14:16, 05/11/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
06.08.2022 - Issue created 3 months ago by ...
15.08.2022 - "Hi folks, Can you please confirm that you've received this? Thanks!"
16.08.2022 - "Yes, received. Thank you!"
03.10.2022 - "Hey folks, We're one month out from the deadline. Do you expect to have a fix released by then? Thanks!"
08.10.2022 - "I hope to have time to investigate this next week."
17.10.2022 - (патч подготовлен и опубликован pixman-разработчиком на issue трекере)
27.10.2022 - "Hey Matt, We're one week out from the deadline. Do you expect to have the fix released by then?"
27.10.2022 - "I don't know the process for announcing a security issue (and I don't actually know that this is a security issue?). What should I do?"
02.11.2022 - (commit & release !)
За 4 дня до истечения 3-месячного срока.
| |
|
2.47, Аноним (12), 15:01, 05/11/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
А куда спешить-то? Сколько лет бажина там жила и ничего не случилось. Подумаешь еще пара месяцев...
| |
|
3.49, An2 (?), 15:08, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ещё пару+ лет:
19.04.2020 - 0.40.0
18.10.2022 - 0.40.2
Тем более что "and I don't actually know that this is a security issue?"
| |
3.56, пох. (?), 17:47, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Пара месяцев после того как прототип эксплойта выложили на радость скрипткиддям? Ну, ок.
| |
|
|
|
|
3.86, пох. (?), 09:52, 06/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
> С самой первой версии процессоров интел.
у vax архитектуры разьве нет расширения знака при сдвиге?
(а на процессорах с 16 bit int это недоразумение работать не могло бы в принципе, они - в безопастности!)
| |
|
|
1.64, Аноним (63), 19:24, 05/11/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Опять растоманы сишникам CVE с переполнением подбросили. Ну что ж ты будешь деать‽
| |
|
2.66, An2 (?), 20:00, 05/11/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Зато когда в расте или библиотеке обнаруживают дефект - вместо незаметной замены всего одной маленькой библиотеки надо пересобрать вообще всё, т.к. статика. Например, Go - тоже статика, но хотя бы молниеносно пересобирается, а раст - это очень долго да ещё и много-много гигабайт на диске.
| |
|
|
2.70, Аноним (12), 21:14, 05/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
Есть уже доказанная возможность писать за пределы буфера. Если подтвердят возможность выполнения кода, то будет возможность выполнить произвольный код с правами этой либы. Для firefox это может быть напр. при открытии специально подготовленной страницы.
| |
|
3.112, DBA (??), 14:12, 08/11/2022 [^] [^^] [^^^] [ответить]
| +/– |
а если фурифокс будет запускаться в виртуалке на линуксе? и в это виртуалке ничего кроме этого фурифокса нет - воровать нечего.
| |
|
|
1.106, iPony129412 (?), 10:40, 07/11/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Я из-за Opennet теперь тест на "P" в браузере не прохожу - вылезает Pixman.
А если набрать "POR" - вылезает сайт по продаже сетевого оборудования.
| |
|