<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Обновление X.Org Server 21.1.14 с устранением уязвимости</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/135171.html</link>
    <description>Опубликованы корректирующие выпуски X.Org Server 21.1.14 и DDX-компонента (Device-Dependent X) xwayland 24.1.4, обеспечивающего запуск X.Org Server для организации выполнения X11-приложений в окружениях на базе Wayland. В новых версиях  устранена уязвимость (CVE-2024-9632), которая может быть эксплуатирована для повышения привилегий в системах, в которых X-сервер выполняется с правами root, а также для удалённого выполнения кода в конфигурациях, в которых для доступа используется перенаправление сеанса X11 при помощи SSH...&lt;br&gt;&lt;br&gt;Подробнее: https://www.opennet.ru/opennews/art.shtml?num=62136&lt;br&gt;</description>

<item>
    <title>Обновление X.Org Server 21.1.14 с устранением уязвимости (n00by)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/135171.html#147</link>
    <pubDate>Thu, 07 Nov 2024 08:33:35 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;  char *str3 = &quot;789&quot;; &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;  char *out; &lt;br&gt;&amp;gt;&amp;gt; А зачем вообще нужны голые указатели?&lt;br&gt;&amp;gt; Я таки нашел 1 применение похожей конструкции. Можно написать например &lt;br&gt;&amp;gt; ...&lt;br&gt;&amp;gt; return &quot;OK&quot;; &lt;br&gt;&amp;gt; ...и номер в принципе катит. Актуально для всяких &quot;err2str&quot; самопальных. Конечно оно &lt;br&gt;&amp;gt; return по факту - указатель на строку &quot;OK&quot;, си ж не &lt;br&gt;&amp;gt; умеет строку by value возвращать вот так в лобову. Да и &lt;br&gt;&amp;gt; не в лобовую - лучше не надо.&lt;br&gt;&lt;br&gt;В каких-то частных случаях без голых указателей на массивы символов не обойтись, но в общем случае от них больше проблем, чем пользы.&lt;br&gt;</description>
</item>

<item>
    <title>Обновление X.Org Server 21.1.14 с устранением уязвимости (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/135171.html#146</link>
    <pubDate>Wed, 06 Nov 2024 08:47:46 GMT</pubDate>
    <description>&amp;gt;&amp;gt;  char *str1 = &quot;123&quot;; &lt;br&gt;&amp;gt;&amp;gt;  char *str2 = &quot;456&quot;; &lt;br&gt;&amp;gt;&amp;gt;  char *str3 = &quot;789&quot;; &lt;br&gt;&amp;gt;&amp;gt;  char *out; &lt;br&gt;&amp;gt; А зачем вообще нужны голые указатели?&lt;br&gt;&lt;br&gt;Я таки нашел 1 применение похожей конструкции. Можно написать например &lt;br&gt;...&lt;br&gt;return &quot;OK&quot;;&lt;br&gt;&lt;br&gt;...и номер в принципе катит. Актуально для всяких &quot;err2str&quot; самопальных. Конечно оно return по факту - указатель на строку &quot;OK&quot;, си ж не умеет строку by value возвращать вот так в лобову. Да и не в лобовую - лучше не надо.&lt;br&gt;</description>
</item>

<item>
    <title>Обновление X.Org Server 21.1.14 с устранением уязвимости (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/135171.html#145</link>
    <pubDate>Wed, 06 Nov 2024 08:43:46 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Да даже без макросов многие либы навязывают архитектуру и дизайн приложения.&lt;br&gt;&amp;gt; хм.. ну, может это не нравится кому-то, действительно.&lt;br&gt;&amp;gt; хотя, мне кажется, это наоборот хорошо.&lt;br&gt;&lt;br&gt;А вот это - зависит от. Может, по изначальной задумке было бы удобно совсем другую архитектуру. Но нет, придется делать самолет из бамбука и лиан. Потому что автор либы так хотел. И запускать его - с обрыва, чтобы хоть как-то летал.&lt;br&gt;</description>
</item>

<item>
    <title>Обновление X.Org Server 21.1.14 с устранением уязвимости (n00by)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/135171.html#144</link>
    <pubDate>Wed, 06 Nov 2024 08:22:15 GMT</pubDate>
    <description>&amp;gt;  eAPIStrUnite(out, str1, str2, str3); &lt;br&gt;&amp;gt;  TableAdd(htb, &quot;Key&quot;, out); &lt;br&gt;&amp;gt;  printf(&quot;&#037;s&#092;n&quot;, out); &lt;br&gt;&amp;gt;  eAPIMemPointFree(out); &lt;br&gt;&amp;gt;  char *Data = TableGet(htb, char*, &quot;Key&quot;); &lt;br&gt;&amp;gt;  printf(&quot;&#037;s&#092;n&quot;, Data); // обращение к NULL &lt;br&gt;&lt;br&gt;В догонку к &quot;двусвязному списку для хранения&quot;... Если TableAdd() и TableGet() внутри содержат некий перфект хеш, то замена хештаблицы на префиксное дерево позволит убрать операцию слияния подстрок для формирования ключа, вместо этого искать-добавлять непосредственно по подстрокам ключа. Сами строки-подстроки при этом хранятся в дереве. Для передачи в printf придётся их скопировать в массив char, но в простейшем случае хватит локальной копии (в стеке). Почему &quot;значение&quot; следует объединять из подстрок перед добавлением в таблицу - тоже неочевидно. Может быть, проще его менять?&lt;br&gt;</description>
</item>

<item>
    <title>Обновление X.Org Server 21.1.14 с устранением уязвимости (n00by)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/135171.html#143</link>
    <pubDate>Tue, 05 Nov 2024 07:32:32 GMT</pubDate>
    <description>&amp;gt;  char *str1 = &quot;123&quot;; &lt;br&gt;&amp;gt;  char *str2 = &quot;456&quot;; &lt;br&gt;&amp;gt;  char *str3 = &quot;789&quot;; &lt;br&gt;&amp;gt;  char *out; &lt;br&gt;&lt;br&gt;А зачем вообще нужны голые указатели?&lt;br&gt;&lt;br&gt;Вот эти массивы char -- в примере появились для наглядности -- в рабочей программе они откуда-то взялись? И при этом была подсчитана их длина, наверняка и память под них выделена?&lt;br&gt;&lt;br&gt;&amp;gt; eAPIStrUnite(out, str1, str2, str3);&lt;br&gt;&lt;br&gt;Например, если &quot;строки&quot; хранить в странном на первый взгляд формате - в двусвязном списке char - может оказаться, что слияние выполняется без лишних копирований и вопрос с управлением памятью отпадает сам собой.&lt;br&gt;&lt;br&gt;&amp;gt; TableAdd(htb, &quot;Key&quot;, out);&lt;br&gt;&lt;br&gt;Шаблонная функция в Си++ потребовала бы вместо указателя итератора (а по списку он или по массиву - зависит от специализации). В Си для списка придётся написать отдельную, но вряд ли в ней итерация по списку это основная сложность.&lt;br&gt;&lt;br&gt;Список - просто как пример неочевидного решения, в каких-то частных случаях оправданного. Здесь может быть проще инкапсулировать указатель и счётчик в struct string?&lt;br&gt;</description>
</item>

<item>
    <title>Обновление X.Org Server 21.1.14 с устранением уязвимости (мяв)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/135171.html#142</link>
    <pubDate>Sun, 03 Nov 2024 10:19:59 GMT</pubDate>
    <description>вот при таком раскладе проявляются проблемы:&lt;br&gt;&#096;&#096;&#096;&lt;br&gt;int main()&#123;&lt;br&gt;TableInitExtern(htb);&lt;br&gt;&lt;br&gt;char *str1 = &quot;123&quot;;&lt;br&gt;char *str2 = &quot;456&quot;;&lt;br&gt;char *str3 = &quot;789&quot;;&lt;br&gt;&lt;br&gt;char *out;&lt;br&gt;&lt;br&gt;eAPIStrUnite(out, str1, str2, str3);&lt;br&gt;&lt;br&gt;TableAdd(htb, &quot;Key&quot;, out);&lt;br&gt;&lt;br&gt;printf(&quot;&#037;s&#092;n&quot;, out);&lt;br&gt;eAPIMemPointFree(out);&lt;br&gt;&lt;br&gt;char *Data = TableGet(htb, char*, &quot;Key&quot;);&lt;br&gt;printf(&quot;&#037;s&#092;n&quot;, Data); // обращение к NULL&lt;br&gt;&lt;br&gt;TableFree(htb);&lt;br&gt;&lt;br&gt;&#125;&lt;br&gt;&#096;&#096;&#096;&lt;br&gt;сделала вот так в конечном итоге:&lt;br&gt;&#096;&#096;&#096;&lt;br&gt;int main()&#123;&lt;br&gt;&lt;br&gt;TableInitExtern(htb);&lt;br&gt;&lt;br&gt;char *str1 = &quot;123&quot;;&lt;br&gt;char *str2 = &quot;456&quot;;&lt;br&gt;char *str3 = &quot;789&quot;;&lt;br&gt;&lt;br&gt;char *out;&lt;br&gt;refctl outCtl;&lt;br&gt;&lt;br&gt;eAPIStrUnite(out, str1, str2, str3);&lt;br&gt;&lt;br&gt;TableAdd(htb, &quot;Key&quot;, refLend(outCtl, out));&lt;br&gt;&lt;br&gt;printf(&quot;&#037;s&#092;n&quot;, out);&lt;br&gt;memFree(out); // не очищает: 0 юзеров, 1 аренда&lt;br&gt;&lt;br&gt;char *Data = ref(TableGet(htb, char*, &quot;Key&quot;));&lt;br&gt;printf(&quot;&#037;s&#092;n&quot;, Data);&lt;br&gt;memFree(Data); // не очищает: 0 юзеров, 1 аренда&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;TableFree(htb);&lt;br&gt;refBorrow(outCtl); // очищает&lt;br&gt;&#125;&lt;br&gt;&#096;&#096;&#096;&lt;br&gt;</description>
</item>

<item>
    <title>Обновление X.Org Server 21.1.14 с устранением уязвимости (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/135171.html#141</link>
    <pubDate>Fri, 01 Nov 2024 09:25:57 GMT</pubDate>
    <description>&amp;gt; Опять же, если у проги большой рынок, то, скорее всего, разрабы сидят на зарплате. А в таком случае им вообще может быть фиолетово. &lt;br&gt;&lt;br&gt;Так почти все успешные программы - это разрабы на зарплате.&lt;br&gt;Что ядро линукс, что блендер и тд.&lt;br&gt;Есть пару исключений типа vim, на то они и исключения (и при этом сливает по аудитории VS-коду). &lt;br&gt;&lt;br&gt;&amp;gt; Я в курсе. Проблема в том, что реализации Wayland кажутся еще сырыми, и не мне одному.&lt;br&gt;&lt;br&gt;Если оно не соответствует твоим ожиданиям, то можешь продолжать сидеть на ХОрге и поддерживать его сам.&lt;br&gt;&lt;br&gt;&amp;gt; Если бы переход с иксов был максимально бесшовным и безболезненным, &lt;br&gt;&lt;br&gt;Не будет) Это невозможно просто архитектурно.&lt;br&gt;&lt;br&gt;&amp;gt; а разработчиком пришлось бы перерисывать минимум кода (а не как сейчас), &lt;br&gt;&lt;br&gt;Ты сам знаешь что это не возможно.&lt;br&gt;Слишком много изменилось, ИМХО это даже круче чем смена 16 на 32 бита.&lt;br&gt;&lt;br&gt;&amp;gt; то вообще никакого флейма не было бы, и про иксы уже давно забыли. &lt;br&gt;&lt;br&gt;Тут просто классическая ситуация &quot;ну раз еще все не перешли, то зачем тратить время? будем просто игнорироват</description>
</item>

<item>
    <title>Обновление X.Org Server 21.1.14 с устранением уязвимости (n00by)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/135171.html#140</link>
    <pubDate>Fri, 01 Nov 2024 08:26:39 GMT</pubDate>
    <description>Ого, это похоже на переполнение входного буфера при попытке множественного инстанциирования.&lt;br&gt;</description>
</item>

<item>
    <title>Обновление X.Org Server 21.1.14 с устранением уязвимости (n00by)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/135171.html#139</link>
    <pubDate>Fri, 01 Nov 2024 08:13:23 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;   free(*point); &lt;br&gt;&amp;gt;   *point=NULL; &lt;br&gt;&amp;gt; &#125; &lt;br&gt;&amp;gt; &#096;&#096;&#096; &lt;br&gt;&amp;gt; &#096;&#096;&#096; &lt;br&gt;&amp;gt; &amp;lt;...&amp;gt; &lt;br&gt;&amp;gt; memFree(&amp;point); &lt;br&gt;&amp;gt; &amp;lt;...&amp;gt; &lt;br&gt;&amp;gt; &#096;&#096;&#096; &lt;br&gt;&amp;gt; потом просто на NULL значения проверяете и все &lt;br&gt;&lt;br&gt;В #11 не вижу этой лишней косвенности, только &#096;&#096;free(ptr); ptr=NULL;&#096;&#096;&lt;br&gt;&lt;br&gt;Лишняя - потому что лишние операции, лишние инструкции в машинном коде. Если такая цена устраивает, то вопросов нет. Часть лишнего оптимизатор может быть даже выкинет, если не передавать такие указатели между модулями (so, dll).&lt;br&gt;</description>
</item>

</channel>
</rss>
