The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально позволяющая выполнить код, opennews (??), 16-Дек-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


10. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  –11 +/
Сообщение от Анонимemail (10), 16-Дек-21, 09:56 
а когда кучу надо освободить — это всегда безопасная процедура?
Ответить | Правка | Наверх | Cообщить модератору

15. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  –18 +/
Сообщение от Брат Анон (ok), 16-Дек-21, 10:05 
На стеке -- да. Но никак не в куче. А вообще, Си доказал давно свою профнепригодность.
Ответить | Правка | Наверх | Cообщить модератору

19. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +16 +/
Сообщение от InuYasha (??), 16-Дек-21, 10:14 
Пока что, лишь Анон доказал давно свою профнепригодность.
Ответить | Правка | Наверх | Cообщить модератору

43. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  –2 +/
Сообщение от Брат Анон (ok), 16-Дек-21, 11:08 
> Пока что, лишь Анон доказал давно свою профнепригодность.

При выполнении пары правил (что само по себе не очень идея) -- можно.
Си по определению опасен. Я бы его использовать не стал. Оберон -- другое дело.

Ответить | Правка | Наверх | Cообщить модератору

56. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Sw00p aka Jerom (?), 16-Дек-21, 11:35 
>Си по определению опасен

зарубите на носу и держитесь подальше, ибо язык это не для незнаек и недоучек, я даже не представляю как программисты писали бы на асм.

Ответить | Правка | Наверх | Cообщить модератору

67. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +5 +/
Сообщение от Rev (?), 16-Дек-21, 13:33 
Значит ядро с такими уязвимостями писали знайки и доучки, да?
Ответить | Правка | Наверх | Cообщить модератору

72. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  –3 +/
Сообщение от Sw00p aka Jerom (?), 16-Дек-21, 14:11 
> Значит ядро с такими уязвимостями писали знайки и доучки, да?

а ядро причем? никто не запрещает незнайкам и недоучкам писать ядро, а раз в ядре такие же баги, значить их писали незнайки и недоучки. Конечно легче все свалить на дырявую Сишку, а свою безолаберность и некомпетентность не признавать.

Ответить | Правка | Наверх | Cообщить модератору

77. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +3 +/
Сообщение от _ (??), 16-Дек-21, 14:41 
> а ядро причем? никто не запрещает незнайкам и недоучкам писать ядро, а
> раз в ядре такие же баги, значить их писали незнайки и недоучки.

И рецензировали написанное - тоже незнайки-недоучки, а не сферическо-пряморукие Си-погромизды с опеннета (правда, немного воображаемые), ага.
> Конечно легче все свалить на дырявую Сишку, а свою безолаберность и некомпетентность не признавать.

То ли дело религиозные адепты, у которых их объект поклонения непогрешим и не подлежит сомнению, а все неурядицы - происки лукавого, испытание, недостаток веры и прочее ...

Ответить | Правка | Наверх | Cообщить модератору

89. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  –1 +/
Сообщение от Sw00p aka Jerom (?), 16-Дек-21, 17:07 
> И рецензировали написанное - тоже незнайки-недоучки, а не сферическо-пряморукие Си-погромизды
> с опеннета (правда, немного воображаемые), ага.

выходит так, спросите у того кто проводил рецензию. Не знание тонкостей работы с инструментом не говорит о его "плохости", а лишь подтверждает "незнайности" и "недоучности" пользователя тонкости работы с инструментом.

> То ли дело религиозные адепты, у которых их объект поклонения непогрешим и
> не подлежит сомнению, а все неурядицы - происки лукавого, испытание, недостаток
> веры и прочее ...

где тут поклонение, если пользователь не знает всех тонкостей работы с инструментом, его право сменить его, но кричать, ой какой он "плохой" - происки от лукавого.


Ответить | Правка | Наверх | Cообщить модератору

117. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Прохожий (??), 17-Дек-21, 07:29 
>Не знание тонкостей работы с инструментом не говорит о его "плохости"

Если двумя разными инструментами можно сделать одну и ту же работу, только для того, чтобы достичь результата, надо знать тонкости работы первого инструмента, но не надо знать тонкостей работы второго, первый инструмент - хуже. Простая логика.

Ответить | Правка | Наверх | Cообщить модератору

124. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Sw00p aka Jerom (?), 17-Дек-21, 11:15 
>Простая логика.

Потребительская логика, легче купить продукт.

Ответить | Правка | Наверх | Cообщить модератору

135. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от амоним (?), 17-Дек-21, 18:11 
легче купить нового раба с нужными знаниями
Ответить | Правка | К родителю #124 | Наверх | Cообщить модератору

95. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Аноним (95), 16-Дек-21, 20:13 
>> никто не запрещает незнайкам и недоучкам писать ядро

А значит ядро нужно писать не на Си. А то незнайки и недоучки делают много ляпов.

Ответить | Правка | К родителю #72 | Наверх | Cообщить модератору

98. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +1 +/
Сообщение от Sw00p aka Jerom (?), 16-Дек-21, 21:52 
> А значит ядро нужно писать не на Си. А то незнайки и
> недоучки делают много ляпов.

отличная логика, незнайка и недоучка по определению не должен писать не на Си ни ядро, раз на то пошло. А если и пишет, ну Бог с ним, я не запрещал :)

Ответить | Правка | Наверх | Cообщить модератору

114. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +1 +/
Сообщение от искра (?), 17-Дек-21, 04:05 
>ибо язык это не для незнаек и недоучек

а кто доучка? практика показвывает, что на си пишут исключительно недоучки, получается. вездеж дыры, значит везде недоучки пишут.

Ответить | Правка | К родителю #56 | Наверх | Cообщить модератору

125. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Sw00p aka Jerom (?), 17-Дек-21, 11:22 
>а кто доучка?

ну а шо поделаешь, если в школе вам будут за место математики преподавать всякую ересь, кто виноват - ученики, которые это хавают? Другое дело когда играет роль чсв, изучая сначала какойто питон, приходят к С, и чсв не позволяет им писать обычный калькулятор, они сразу должны ядро писать, ведь они уже выучили программирование. А если, что-то в процессе идет не так, то фииии С плохой. Хорошо их асм сразу отпугивает :)

Ответить | Правка | Наверх | Cообщить модератору

65. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +1 +/
Сообщение от Аноним (65), 16-Дек-21, 13:23 
Брат Анон, тебе в ЯОС!
Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

100. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от _ (??), 16-Дек-21, 23:44 
Ну а что - тоже хорошие 3 буквы, и означают наверное то-же самое  :)
Ответить | Правка | Наверх | Cообщить модератору

146. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Брат Анон (ok), 19-Дек-21, 18:28 
> Брат Анон, тебе в ЯОС!

Аноним, ты так это написал, как-будто в этом есть что-то плохое. И тебя сейчас немного рассторю: у меня оно лежит на флешке, я это иногда запускаю побаловаться -- штука офигительная. (Не ЯОС, то что было под ним, в сущности -- тоже самое).

Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

23. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Анонм (?), 16-Дек-21, 10:19 
Си еще ладно.
Машинные коды вообще никуда не годятся!
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

44. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Брат Анон (ok), 16-Дек-21, 11:09 
> Си еще ладно.
> Машинные коды вообще никуда не годятся!

Машинные коды не язык. И не переносимо. Хреновая идея.

Ответить | Правка | Наверх | Cообщить модератору

51. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +2 +/
Сообщение от псевдонимус (?), 16-Дек-21, 11:31 
А по мне так отличная. Одна железка -- одна программа, гы. Как у макосексуалистов. Правдо гейось это не спасло: оно все равно оно, что платформа, что ось.
Ответить | Правка | Наверх | Cообщить модератору

90. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +2 +/
Сообщение от InuYasha (??), 16-Дек-21, 17:30 
Полностью согла..
*надменно-осуждающие лица дизайнеров из соседней комнаты*
...сен.
*захлопнул дверь*
Ответить | Правка | Наверх | Cообщить модератору

93. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от псевдонимус (?), 16-Дек-21, 19:00 
> Полностью согла..
> *надменно-осуждающие лица дизайнеров из соседней комнаты*
> ...сен.
> *захлопнул дверь*

;))

Но ведь и правда, что нужно: ассемблеры, Фортран, тикль и Шелл. Ну ладно, ц исчо. ) И перл. Для одминов.

Ответить | Правка | Наверх | Cообщить модератору

101. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от _ (??), 16-Дек-21, 23:49 
и жаба - для индусов
и раст - для ******
и пеЙтон - для школоты
и ребе - для замороженных
и плюсы - чтобы можно было в свитер с оленями
...
и брейнфак - потому что это красиво!

ВотЪ! (С) :)

Ответить | Правка | Наверх | Cообщить модератору

94. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от псевдонимус (?), 16-Дек-21, 19:02 
> Полностью согла..
> *надменно-осуждающие лица дизайнеров из соседней комнаты*
> ...сен.
> *захлопнул дверь*

Мля, япро форт забыл. В принципе достаточно его одного. Лучший язык всех времён и народов, я не шучу

Ответить | Правка | К родителю #90 | Наверх | Cообщить модератору

102. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от _ (??), 16-Дек-21, 23:51 
Дык все глупости в этом мире сделаны с серьёзным выражение лица! (С) Барон Мюнхгаузен
Ответить | Правка | Наверх | Cообщить модератору

127. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Sw00p aka Jerom (?), 17-Дек-21, 12:02 
не мешайте глупцам совершать глупости (ц) Барон Жером :)
Ответить | Правка | Наверх | Cообщить модератору

129. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от InuYasha (??), 17-Дек-21, 12:32 
Бегите, глупцы! (ц) Гендо... т.е. Гендальф :)


Ответить | Правка | Наверх | Cообщить модератору

53. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +4 +/
Сообщение от Sw00p aka Jerom (?), 16-Дек-21, 11:32 
С доказывает только профнепригодность программистов, которые пишут программы не думая о стеке куче всякой архитектурной хрени
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

110. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Аноним (110), 17-Дек-21, 01:37 
>> С доказывает только профнепригодность программистов, которые пишут программы не думая о стеке куче всякой архитектурной хрени

Чтоб об этом думать - надо об этом знать
Последних много лет идет снижение порога входа в отрасль
А коммит в ядро это строчка в резюме
Ревью тоже человеки делают
Ну и вот

Ответить | Правка | Наверх | Cообщить модератору

126. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Sw00p aka Jerom (?), 17-Дек-21, 11:29 
>Последних много лет идет снижение порога входа в отрасль

ну и к чему приведет снижение этого порога? Можно ли опустить допустим знания приоритетов обычных арифметических действий и заниматься вышматом?

Ответить | Правка | Наверх | Cообщить модератору

137. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Аноним (110), 18-Дек-21, 03:26 
>> ну и к чему приведет снижение этого порога?

К усилению позиции корпорации-инициатора.

Корпорация может себе позволить нанять нормальных. Знающих про процессор, стек, кэш и страницы памяти. И то что они есть и как работают в разных архитектурах. И учитывающих это всё.

Остальным достанутся программисты после курсов и соответвенный результат.

Ответить | Правка | Наверх | Cообщить модератору

138. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Аноним (110), 18-Дек-21, 03:34 
>> Можно ли опустить допустим знания приоритетов обычных арифметических действий и заниматься вышматом?

В чужой стране - просто необходимо)
Убить системный подход в образовании самый сильный ход наверное.
Пообщайтесь с выпускниками школ. Они даже запоминают плохо. Про мышление, тем более критическое, речи не идет.

Ответить | Правка | К родителю #126 | Наверх | Cообщить модератору

140. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Sw00p aka Jerom (?), 18-Дек-21, 11:16 
>В чужой стране - просто необходимо)

план даллеса курит в сторонке, серьезно.

>Убить системный подход в образовании самый сильный ход наверное.

хотелось бы написать про самообразование, но увы это единицы, и школа решает.

>Пообщайтесь с выпускниками школ. Они даже запоминают плохо. Про мышление, тем более критическое, речи не идет.

шпаргалки даже нынче не в моде :) гугл в помощь

Ответить | Правка | Наверх | Cообщить модератору

61. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +1 +/
Сообщение от x3who (?), 16-Дек-21, 12:38 
>  На стеке -- да. Но никак не в куче.

Не догоняю в чем разница. Если тебе в стек напишут данные в уже освобождённый буфер по сбежавшему указателю - это разве сильно безопаснее?

Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

69. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +3 +/
Сообщение от n00by (ok), 16-Дек-21, 13:51 
>>  На стеке -- да. Но никак не в куче.
> Не догоняю в чем разница. Если тебе в стек напишут данные в
> уже освобождённый буфер по сбежавшему указателю - это разве сильно безопаснее?

Такая запись не испортит актуальные данные, если не выйдет за границы стека (в ядре ограничен несколькими страницами). Другое дело, что в положенное место запись не прошла, значит там мусор?

Ответить | Правка | Наверх | Cообщить модератору

130. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от x3who (?), 17-Дек-21, 12:57 
> Такая запись не испортит актуальные данные, если не выйдет за границы стека
> (в ядре ограничен несколькими страницами). Другое дело, что в положенное место
> запись не прошла, значит там мусор?

Во-первых испортит, если все данные будут храниться на стеке. Во-вторых появляется испортить ещё и как минимум адрес возврата из функции, что вдогонку приведёт к ещё более нехорошим последствиям.

Ответить | Правка | Наверх | Cообщить модератору

131. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от n00by (ok), 17-Дек-21, 15:00 
Тут надо понимать, что такое вершина стека, которую адресует указатель стека. Обычно путаются, потому что стек растёт в сторону младших адресов (т.е. адрес уменьшается). На самом деле от численных значений можно абстрагироваться:

1. создали локальные:

аргумент
адрес возврата
локальная1
локальная2
локальная3
вершина

2. освободили локальная3:

аргумент
адрес возврата
локальная1
локальная2
вершина
локальная3 <- вот сюда пишем по ошибке.

Стековый кадр возможно даже не создавать, не менять SP, если внутри подпрограммы нет вызовов. Просто адресуются ячейки над вершиной (а в цифрах их адреса ниже). Подробнее см. red zone в x86-64-psABI-1.0.pdf

Ответить | Правка | Наверх | Cообщить модератору

139. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от x3who (?), 18-Дек-21, 10:22 
> вершина
> локальная3 <- вот сюда пишем по ошибке.

совершенно необязательно, что именно сюда только сюда. И даже что пишем необязательн. По ошибке можно что хошь прчитать или перезаписать.


> Обычно путаются, потому что стек растёт в сторону младших адресов (т.е. адрес уменьшается).

ну и что? вот разместил ты на стеке буфер и пишешь в него. По возрастанию адресов. Буфер кончился, а ты по ошибке продолжаешь в него писать. Такую ошибку легко вообразить. И будешь ты переписывать данные и адреса возвратов. Не вижу чем это лучше динамического выделения памяти ппи котором хоть адреса возврата уцелеют если что.

Ответить | Правка | Наверх | Cообщить модератору

141. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от n00by (ok), 18-Дек-21, 11:16 
>> вершина
>> локальная3 <- вот сюда пишем по ошибке.
> совершенно необязательно, что именно сюда только сюда. И даже что пишем необязательн.
> По ошибке можно что хошь прчитать или перезаписать.

Желательно помнить контекст:

#10 >>> а когда кучу надо освободить — это всегда безопасная процедура?
#15 >> На стеке -- да. Но никак не в куче.
#61 > Не догоняю в чем разница. Если тебе в стек напишут данные
#61 > в уже освобождённый буфер по сбежавшему указателю - это разве сильно безопаснее?

освобождённый на стеке - всегда после вершины

>> Обычно путаются, потому что стек растёт в сторону младших адресов (т.е. адрес уменьшается).
> ну и что? вот разместил ты на стеке буфер и пишешь в
> него. По возрастанию адресов. Буфер кончился, а ты по ошибке продолжаешь
> в него писать. Такую ошибку легко вообразить. И будешь ты переписывать
> данные и адреса возвратов. Не вижу чем это лучше динамического выделения
> памяти ппи котором хоть адреса возврата уцелеют если что.

Этот буфер не освобождён и ошибка другая.

Ответить | Правка | Наверх | Cообщить модератору

142. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от x3who (?), 18-Дек-21, 12:30 
> освобождённый на стеке - всегда после вершины

Не всегда. Вот пример: какой-то код фызвал функцию, которая разместила буфер на стеке, пошаманила там что-то и вернула некую структуру в которой одно из полей содержит указатель на этот буфер.
Вызывающий код про эту структуру даже не курсе, он просто передаёт её как параметр другой функции и та вдруг осуществляет доступ по переданному указателю куда-то себе в стек, где лежат уже другие данные.

> Этот буфер не освобождён и ошибка другая.

желательно помнить контекст - тема про переполнение буфера, так что ошибка будет сабжевая

Ответить | Правка | Наверх | Cообщить модератору

143. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от n00by (ok), 18-Дек-21, 13:38 
>> освобождённый на стеке - всегда после вершины
> Не всегда.

Это следует из определения. Цитирую System V Application Binary Interface AMD64 Architecture Processor Supplement

3.2.2 The Stack Frame
The stack pointer, %rsp, always points to the end of the latest allocated stack frame.

> Вот пример: какой-то код фызвал функцию, которая разместила буфер на
> стеке, пошаманила там что-то и вернула некую структуру в которой одно
> из полей содержит указатель на этот буфер.

В данный момент буфер в стеке освобождён, записи пока нет.

> Вызывающий код про эту структуру даже не курсе, он просто передаёт её
> как параметр другой функции и та вдруг осуществляет доступ по переданному
> указателю куда-то себе в стек, где лежат уже другие данные.

Здесь стек уже занят (под другой буфер). Спасибо, теперь понятно, где я ошибся. В вопросах фигурировало "всегда" и мне следовало бы конкретизировать "в пределах функции", что бы не возникло разночтений. Я понял "уже освобождённый" как "только что освобождённый".

Вот такой код может уронить приложение, поскольку страница вернулась системе:
free(p);
if (*p);

>> Этот буфер не освобождён и ошибка другая.
> желательно помнить контекст - тема про переполнение буфера, так что ошибка будет
> сабжевая

Тему сменили на обсуждение использования после освобождения, и я отвечал на вполне конкретный вопрос про освобождённый стек. Размер записанных данных в вопросе не оговаривается, потому я его вывел из условия "освобождённый" - то есть не пересекает вершину.

Ответить | Правка | Наверх | Cообщить модератору

144. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от x3who (?), 18-Дек-21, 15:20 
> Вот такой код может уронить приложение, поскольку страница вернулась системе:
> free(p);
> if (*p);

Не должен бы. Не знаю, но подозреваю, что кернельские треды уже имеют преаллоцированные стеки. Стеки юзерских процессов судя по наличию функции expand_stack() и отсутствию обратной ( https://github.com/torvalds/linux/blob/master/include/linux/... ) - только растут. Ну и по смыслу на каждое подергивание стека ходить в ядро и освобождать страницы - это очень дорогая операция. Кроме того, даже если ваша программа обратится в произвольную часть стека в пределах лимита на размер стека и там не окажется страницы то никто никуда не упадёт: возникнет исключение в котором ядро скорее всего тупо подложит страницу под ту область куда произошло обращение.


> Тему сменили на обсуждение использования после освобождения, и я отвечал на вполне
> конкретный вопрос про освобождённый стек. Размер записанных данных в вопросе не
> оговаривается, потому я его вывел из условия "освобождённый" - то есть
> не пересекает вершину.

Ну я просто например не понял, почему там народ решил, что освобождение памяти в куче чем-то опаснее чем стек, потому и спрашивал.

Ответить | Правка | Наверх | Cообщить модератору

145. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от n00by (ok), 18-Дек-21, 17:21 
>> Вот такой код может уронить приложение, поскольку страница вернулась системе:
>> free(p);
>> if (*p);
> Не должен бы.

Если освобождаемый блок окажется последним занятым в странице памяти, менеджер кучи может решить вернуть страницу системе и выполнит munmap(). Таким образом адресуемая указателем память окажется недоступна. Самое весёлое, когда подобное совпадение происходит в 1 случае из 100000.

> Не знаю, но подозреваю, что кернельские треды уже имеют
> преаллоцированные стеки.

Писал о них в #74. Размер 8К.

> Стеки юзерских процессов судя по наличию функции expand_stack()
> и отсутствию обратной ( https://github.com/torvalds/linux/blob/master/include/linux/...
> ) - только растут. Ну и по смыслу на каждое подергивание
> стека ходить в ядро и освобождать страницы - это очень дорогая
> операция.

Так free() это не стек. В куче предполагается хранить большие объёмы, а в стеке малые - потому в куче разумно предусмотреть возврат страниц системе, а в стеке они лишний.

> Кроме того, даже если ваша программа обратится в произвольную часть
> стека в пределах лимита на размер стека и там не окажется
> страницы то никто никуда не упадёт: возникнет исключение в котором ядро
> скорее всего тупо подложит страницу под ту область куда произошло обращение.
>> Тему сменили на обсуждение использования после освобождения, и я отвечал на вполне
>> конкретный вопрос про освобождённый стек. Размер записанных данных в вопросе не
>> оговаривается, потому я его вывел из условия "освобождённый" - то есть
>> не пересекает вершину.
> Ну я просто например не понял, почему там народ решил, что освобождение
> памяти в куче чем-то опаснее чем стек, потому и спрашивал.

Наверное, потому что аллоцировать на куче и сохранять указатель - обычная операция (другое дело, что потом с ним работа некорректна). А сохранять указатель на стековые данные - необычная. То есть стек используется как кратковременное хранилище, в таком сценарии перезапись свободной его части безопасна.

P.S. капча 66666 >*-)

Ответить | Правка | К родителю #144 | Наверх | Cообщить модератору

147. Скрыто модератором  +/
Сообщение от Аноним (-), 23-Дек-21, 08:28 
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

16. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Корец (?), 16-Дек-21, 10:06 
Да, если с освобождаемой памятью закончена работа и к ней больше не обращаться.
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

41. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от Аноним (41), 16-Дек-21, 11:07 
> а когда кучу надо освободить — это всегда безопасная процедура?

Да.
Как можно не знать таких основ (азов, элементарщины)!

Нельзя обращаться к освобождённой куче.

Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

70. "Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально ..."  +/
Сообщение от n00by (ok), 16-Дек-21, 13:55 
>> а когда кучу надо освободить — это всегда безопасная процедура?
> Да.
> Как можно не знать таких основ (азов, элементарщины)!
> Нельзя обращаться к освобождённой куче.

Если нельзя, но очень хочется реализовать сборку мусора по алгоритму mark-compact, то можно.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру