The OpenNET Project / Index page

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



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

"Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от opennews (?), 30-Окт-24, 00:02 
Опубликованы корректирующие выпуски 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...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=62136

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

Оглавление

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


2. Скрыто модератором  –13 +/
Сообщение от Аноним (-), 30-Окт-24, 00:13 
Ответить | Правка | Наверх | Cообщить модератору

3. Скрыто модератором  –14 +/
Сообщение от Аноним (-), 30-Окт-24, 00:18 
Ответить | Правка | Наверх | Cообщить модератору

34. Скрыто модератором  +1 +/
Сообщение от xPhoenix (ok), 30-Окт-24, 08:47 
Ответить | Правка | Наверх | Cообщить модератору

36. Скрыто модератором  +/
Сообщение от MegaFon929 (ok), 30-Окт-24, 08:56 
Ответить | Правка | Наверх | Cообщить модератору

38. Скрыто модератором  +3 +/
Сообщение от Аноним (38), 30-Окт-24, 09:27 
Ответить | Правка | Наверх | Cообщить модератору

72. Скрыто модератором  +/
Сообщение от MegaFon929 (ok), 30-Окт-24, 16:37 
Ответить | Правка | Наверх | Cообщить модератору

41. Скрыто модератором  +/
Сообщение от Аноним (41), 30-Окт-24, 10:10 
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

45. Скрыто модератором  +/
Сообщение от Анонимemail (45), 30-Окт-24, 10:48 
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

53. Скрыто модератором  –2 +/
Сообщение от Афроним (?), 30-Окт-24, 11:31 
Ответить | Правка | Наверх | Cообщить модератору

60. Скрыто модератором  +2 +/
Сообщение от Аноним (60), 30-Окт-24, 12:52 
Ответить | Правка | Наверх | Cообщить модератору

61. Скрыто модератором  +/
Сообщение от Афроним (?), 30-Окт-24, 12:59 
Ответить | Правка | Наверх | Cообщить модератору

89. Скрыто модератором  –1 +/
Сообщение от X86 (ok), 30-Окт-24, 21:11 
Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

37. Скрыто модератором  +/
Сообщение от Аноним (37), 30-Окт-24, 09:13 
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

57. Скрыто модератором  +/
Сообщение от randomize (?), 30-Окт-24, 11:57 
Ответить | Правка | Наверх | Cообщить модератору

58. Скрыто модератором  –1 +/
Сообщение от randomize (?), 30-Окт-24, 11:59 
Ответить | Правка | Наверх | Cообщить модератору

66. Скрыто модератором  +/
Сообщение от AleksK (ok), 30-Окт-24, 13:56 
Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

71. Скрыто модератором  +/
Сообщение от Аноним (71), 30-Окт-24, 16:37 
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

82. Скрыто модератором  +/
Сообщение от Аноним (-), 30-Окт-24, 18:24 
Ответить | Правка | Наверх | Cообщить модератору

74. Скрыто модератором  +/
Сообщение от Аноним (74), 30-Окт-24, 17:13 
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

40. Скрыто модератором  +1 +/
Сообщение от Шарп (ok), 30-Окт-24, 09:32 
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

42. Скрыто модератором  +/
Сообщение от iPony129412 (?), 30-Окт-24, 10:12 
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

50. Скрыто модератором  –2 +/
Сообщение от Аноним (50), 30-Окт-24, 11:20 
Ответить | Правка | Наверх | Cообщить модератору

67. Скрыто модератором  –1 +/
Сообщение от Аноним (-), 30-Окт-24, 15:28 
Ответить | Правка | Наверх | Cообщить модератору

70. Скрыто модератором  +/
Сообщение от iPony129412 (?), 30-Окт-24, 16:37 
Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

65. Скрыто модератором  +/
Сообщение от zog (??), 30-Окт-24, 13:52 
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

81. Скрыто модератором  +/
Сообщение от Аноним (-), 30-Окт-24, 18:09 
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

87. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +1 +/
Сообщение от Анониматор (?), 30-Окт-24, 20:02 
можно долго не перечислять софт по работе. На веланде не работает ни один удаленный дестктоп типа Anydesk и TeamViwer. Есть Rustdesk, но пока экспериментально и валится
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

97. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  –1 +/
Сообщение от Аноним (97), 30-Окт-24, 23:02 
> можно долго не перечислять софт по работе. На веланде не работает ни
> один удаленный дестктоп типа Anydesk и TeamViwer. Есть Rustdesk, но пока
> экспериментально и валится

Тем хуже для Anydesk или TeamViewer'а. Уж второй если помрет - мало кто из линуксоидов плакать будет.

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

39. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  –1 +/
Сообщение от Аноним (39), 30-Окт-24, 09:30 
> И таких багов в том дидовом омнокоде не известно никому

Но в новлсти написано о баге в одной конкретной реализации исков.

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

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

44. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (-), 30-Окт-24, 10:38 
> Но в новлсти написано о баге в одной конкретной реализации исков.

Единственной распространенной. Считай монополия.

> А количество композиторов Вайленда перевалило за 20, и многие из них написаны на дидовой сишочке.

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

> Вот и подумай, где в итоге будет больше багов.

Багов которые влияют на практически все десктопные линуксы?
Или которые будут ограничены одним-двумя композиторами?
Вот и подумай что хуже, с учетом того, что этот баг тыщиглаз не замечали 18 лет.

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

51. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  –1 +/
Сообщение от Аноним (50), 30-Окт-24, 11:23 
Забавно, почему айбиэм до сих пор пилит этот вяленый десять лет, и им невозможно пользоваться.
Ответить | Правка | Наверх | Cообщить модератору

55. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (-), 30-Окт-24, 11:47 
С чего это "не возможно"?
Использую вейланд последние года два и проблем только со старым хламом, которые ленивые опы не хотят обновлять до современных технологий.
И проблема такого луддизма заключается как в лени самих разрабов, так и в глупости шапки, которая тянула с дропом иксов настолько долго. Потому что всем известно, что разраб птица гордая, пока не пнешь - не полетит.

А вот как только объявили, что всё - иксы дропают - так сразу все зашевелились.
Даже всякие васяно-ДЕ вроде крысы и корицы начали двигаться в сторону поддержки вейланда. Хотя думаю они не смогут.

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

76. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от randomize (?), 30-Окт-24, 17:24 

> Использую вейланд последние года два и проблем только со старым хламом, которые
> ленивые опы не хотят обновлять

1) раз старым хламом пользуются, значит, он устраивает; 2) если есть пользователи, то должна оставаться поддержка; 3) все, что надо знать о вяленых фанатиках - культ потре&лятства и нового ради нового.

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

78. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (-), 30-Окт-24, 17:38 
> 1) раз старым хламом пользуются, значит, он устраивает

согласен

> 2) если есть пользователи, то должна оставаться поддержка;

Да неужели?) Кому должна? Разве хоть что-то кому-то что-то должен?))
Это же опенсорс - вот сами берете и поддерживаете.

> 3) все, что надо знать о вяленых фанатиках - культ потре&лятства и нового ради нового.

Все что нужно знать о фанатах иксов "диды в дерьме жили и мы будем! главное ничего не менять! а то вдруг у какого-то 6омжа с третим пнем работать перестанет!! дepьмо нужно тянуть вечно, вы абязаны!!1111"

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

88. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от randomize (?), 30-Окт-24, 20:42 

> Да неужели?) Кому должна? Разве хоть что-то кому-то что-то должен?))
> Это же опенсорс - вот сами

Еще раз. Раз пока есть пользователи, то пока есть и поддержка. Мало кто будет собирать кастомное ядро или патчи специально для себя писать. Достаточно не ломать просто. Да, я знаю, иногда просто "оставить как есть" не получится, но ломание гнома и вяленых композиторов иногда происходит по принципу "когда коту нечего делать".
> Все что нужно знать о фанатах иксов "диды в дерьме жили и
> мы будем!

Ага, ща впихнем всем в глотку вяленд и как заживем. А то диды жить мешают.
> 6омжа с третим пнем работать перестанет!!

Сегрегация пользователей, насильное пропихивание своих технологий. Что еще можно ожидать от фанатиков. А в ответ на сообщения о багах - УМВР, не нужно, вы неправильно этим пользуетесь.

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

98. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (-), 30-Окт-24, 23:04 
> Еще раз. Раз пока есть пользователи, то пока есть и поддержка.

Хахаха, нет дорогой, оно так не работает.
За поддержкой иди к корпам или плати денежку.
А опенсорс это "я написал код, я им поделился"
Но у меня нет никаких обязанностей: ни принимать pull request'ы, ни реализовывать фичи, ни осуществлять вообще какую-то поддержку.

> Мало кто будет собирать кастомное ядро или патчи специально для себя писать.

Очень жаль)

> Достаточно не ломать просто.

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

> Да, я знаю, иногда просто "оставить как есть" не получится,

Именно поэтому начали выкидывать ХОрг - тк никто не хотел в нем ковыряться.

> но ломание гнома и вяленых композиторов иногда происходит по принципу "когда коту нечего делать".

И это их полное право.

> Ага, ща впихнем всем в глотку вяленд и как заживем. А то диды жить мешают.

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

> Сегрегация пользователей, насильное пропихивание своих технологий.

Хахахахахаха! Давай поплачь, что 16 битные процы дропнули.
А по поводу насильного пропихивания - patches are welcome.
Вам нужны иксы? Поддерживайте сами!

> А в ответ на сообщения о багах - УМВР, не нужно, вы неправильно этим пользуетесь.

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


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

99. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (-), 30-Окт-24, 23:07 
> 1) раз старым хламом пользуются, значит, он устраивает; 2) если есть пользователи,
> то должна оставаться поддержка;

В этом мире никто никому ничего не должен. И если вам нужна поддержка, ОБАНА, в опенсорсе в моде - self service. Значит вы идете и - поддерживаете то что ВАМ нужно САМИ. Как тебе такое Элон Маск?!

> 3) все, что надо знать о вяленых фанатиках - культ потре&лятства и нового ради нового.

Не, это - желание нормальной графической системы. Которая не ловит якорь от открытия менюшки или одной runaway задачи, не падает всей толпой оптом от GPU recovery, не тормозит и тирингует на отображении видео и анимаций, и не таскает 100500 легаси кода всякой отрисовки контролов и фонтов, которые страшны как смерть - так что это уже никто не использует, но код в результате такой - что посетивших его мучают ночные кошмары.

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

11. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от мявemail (?), 30-Окт-24, 02:07 
>Из-за ошибки при выставлении нового размера, изменение меняло только значение num_si, но оставляло неизменным значение size_si.

почему разаботчики брезгают макросами для такого вида приколов?
некоторые даже ``free(ptr); ptr=NULL;`` делают руками. а потом получают уязвимости вида "мы в Х строке забыли занулить и получили UB в другом конце программы".
изучила немного вопрос. вроде, ничего плохого в макросах нет.
даже сложные конструкции и ветвления туда без проблем запихиваются через
```
#define Macro() \
  do { \
    <...> \
  } while(0)
```
do и while можно в доп. макросы завернуть, улучшив читаемость:
```
#define Macro() \
  MacroContextBegin() \
    <...> \
  MacroContextEnd()
```
или функции инлайновые почему не использовать? зачем это руками делают, понять не могу?

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

12. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от мявemail (?), 30-Окт-24, 02:11 
вот фикс даже: https://gitlab.freedesktop.org/xorg/xserver/-/commit/85b7765...

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

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

14. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +7 +/
Сообщение от Аноним (14), 30-Окт-24, 02:18 
Не понимаешь потому что видимо не пишешь ничего полезного. У тебя все указатели только в функции main(), что ты их можешь макросами занулять?
Ну сделаешь ты макрос, который вызывает free(), а затем присваивает NULL, только вот NULL присвоится локальному указателю внутри функции, а в вызывающе функции будет висячий указатель и никакой макрос тут не поможет
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

16. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  –2 +/
Сообщение от мявemail (?), 30-Окт-24, 02:26 
"поможет ``free(ptr); ptr=NULL``, но не поможет ``#define Free(ptr) free(ptr);ptr=NULL``" ?
по-моему, Вы пишете, не думая.
Ответить | Правка | Наверх | Cообщить модератору

19. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  –2 +/
Сообщение от мявemail (?), 30-Окт-24, 02:37 
Using macros for auto-assigning NULL after freeing a pointer is a common practice in C and C++ programming to help prevent dangling pointer issues.

на stackoverflow то же самое говорят.
Вы - тролль.

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

27. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +1 +/
Сообщение от Аноним (27), 30-Окт-24, 04:19 
На stackoverflow много ерунды.

На самом деле, собирать с -fsanitize=address уже довольно неплохо, но, опять же, зачастую проблема в библиотеке, а не в собственном коде.

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

101. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (-), 30-Окт-24, 23:10 
> На stackoverflow много ерунды.
> На самом деле, собирать с -fsanitize=address уже довольно неплохо, но, опять же,
> зачастую проблема в библиотеке, а не в собственном коде.

sanitize=address довольно жестко тормозит - и RAM жрет на трекинг использования, так что вы получите нечто типа дотнета или явы из сишки. Ну и радости с него такого? Вот ubsan - довольно легкий бывает, но и ловит не все.

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

33. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +6 +/
Сообщение от Аноним (33), 30-Окт-24, 08:16 
> Вы - тролль.

За словами следи, тролль. И прежде, чем лезть в stackoverflow и что-то тут комментировать, следует сначала разобраться в предметной области.

#include <stdio.h>
#include <stdlib.h>

#define FREE(ptr) do { \
        free(ptr); ptr = NULL; } while(0)

void f(int *ptr)
{
        FREE(ptr);
}

int main(void)
{
        int *p = malloc(sizeof(int));

        f(p);

        printf("%p\n", p);

        return 0;
}

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

23. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +2 +/
Сообщение от Аноним (23), 30-Окт-24, 03:06 
> "поможет ``free(ptr); ptr=NULL``, но не поможет ``#define Free(ptr) free(ptr);ptr=NULL``"
> ?

Поможет от чего именно? "в другом конце программы" так и останется предыдущее значение ptr. Или вообще, указатель на кусок освобожденной памяти (*ptr+сдвиг)...

Все эти "новомодные" RAII, smart-pointers, владения и времена жизни в "молодежных" ЯП-ах (как кучи ЯП с автоматической сборкой мусора) не от переизбытка смузи или неосиляния free(ptr);ptr=NULL придумали.

> по-моему, Вы пишете, не думая.

По-моему, кто-то хелловордщик.

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

29. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (29), 30-Окт-24, 07:50 
std::shared_ptr не благодарите
Ответить | Правка | Наверх | Cообщить модератору

31. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  –1 +/
Сообщение от Аноним (31), 30-Окт-24, 08:12 
std::unique_ptr сейчас
Ответить | Правка | Наверх | Cообщить модератору

52. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (52), 30-Окт-24, 11:29 
это два разных указателя, первый со счетчиком ссылок и множественным владением, второй - допускает только одно владение
Ответить | Правка | Наверх | Cообщить модератору

102. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (-), 30-Окт-24, 23:13 
> это два разных указателя, первый со счетчиком ссылок и множественным владением, второй
> - допускает только одно владение

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

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

103. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (23), 30-Окт-24, 23:50 
> Отсутствие этого знания в сях порой вообще несколько портит некоторые аспекты. Скажем,
> некоторые оптимизации не знают - как доступаются к объекту. Скажем можно
> было бы сфолдить несколько констант в одну при идентичности.

Ну, как бы, есть restrict, да. Но ... все "гарантии" и проверки тут опять таки - на самом п(о)громмисте.

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

104. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (-), 31-Окт-24, 00:06 
> Ну, как бы, есть restrict, да. Но ... все "гарантии" и проверки
> тут опять таки - на самом п(о)громмисте.

Есть и более радикальные ключи компилера позволяющие мерж констант - с пониманием что это noncompliant формально. Так rodata - меньше, но какой-то экзотичный код уповавший на вон то имеет право отъехать.

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

105. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (23), 31-Окт-24, 00:09 
>> smart-pointers,
> std::shared_ptr не благодарите

Не благодарю (тем более за "сборщик мусора для бедных" из питоно-свифтов) 😉

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

108. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от мявemail (?), 31-Окт-24, 04:54 
теперь дошло, что сказать хотели, спасибо.
но изначально вопрос был в принципе об использовании макросов для обобщения монотонный действий. а не об "офигенном способе зануленич указателей".
по-моему, это только ivan понял
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

35. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +3 +/
Сообщение от Аноним (33), 30-Окт-24, 08:48 
Объясняю для тупых: если ты объявил указатель, аллоцировал ему память, а потом очистил память и всё это в одной функции, то тогда всё ок. Но если программа сложнее хеллоуврота, то объявляется указатель, аллоцируется память, используется указатель и очищается память обычно в разных функциях. И с этим есть проблема, потому что указатель это самая обычная переменная, просто вместо значения он содержит адрес. Когда ты передаешь указатель в функцию, внутри функции создается КОПИЯ указателя, в которую копируется значение передаваемого указателя, всё как с обычными переменными. Меняя значение такого указателя внутри вызываемой не влияет на указатель в передаваемой функции. Всё как у обычных переменных, чем собственно указатель и является
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

77. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Ivan_83 (ok), 30-Окт-24, 17:29 
Технически никто не мешает передавать указатель на указатель и тогда можно будет занулять и вызывающая функция не останется с невалидным указателем.

На практике я пробовал так делать, код получается громздким.

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

84. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (84), 30-Окт-24, 18:55 
> Технически никто не мешает передавать указатель на указатель и тогда можно будет занулять и вызывающая функция не останется с невалидным указателем.

Технически мешает тот факт, что объект уже освобожден из памяти. Ты же не будешь после free(ptr) держать эту самую переменную ptr, чтобы указатель-на-ptr все еще мог на нее указывать?

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

93. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Ivan_83 (ok), 30-Окт-24, 22:22 
То что я описал это способ в С коде без лишних языковых конструкций и отдельных языков получить аналог std::*_ptr от крестов.
Да, не идеальный, тк теперь у нас не сама память от объекта может быть внезаптно освобождена а может быть освобождена память где хранится указатель на объект.

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

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

95. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (95), 30-Окт-24, 22:40 
> То что я описал это способ в С коде без лишних языковых конструкций и отдельных языков получить аналог std::*_ptr от крестов.

То, что вы описали, даже приблизительно не является аналогом std::*_ptr из C++. А получите вы от этого решения только еще больше геморроя на пустом месте, ибо изначальную проблему оно вообще не решает, но еще и добавляет новую.

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

109. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от мявemail (?), 31-Окт-24, 05:16 
а не проще, кстати, заменить стандартные функции на свои с механихмом подсчета референсов?
```
void fn1(char *point){
  free(point); // понизит до 1, не очистит
}
#define fn1(point) fn1(ref(point))

int main(){
  char *str = malloc(sizeof(char*)); # создаст мутекс, счетчик и вернет аллоцированную память
  str = "hi";
  
  fn1(point); // повысит уровень ссылки до 2

  printf("%s\n", str) // все ок

  free(str) // очистит
}
```
это так, концепция, вчера буквально написала.
осталось поудобнее все это сделать проблема сгинет, вроде.

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

49. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от n00by (ok), 30-Окт-24, 11:08 
> "поможет ``free(ptr); ptr=NULL``, но не поможет ``#define Free(ptr) free(ptr);ptr=NULL``"
> ?
> по-моему, Вы пишете, не думая.

В данном частном случае, может быть, поможет.

В общем случае придётся делать что-то вроде

#define Free_S(pptr) free(*pptr);*pptr=NULL

и соответственно в остальных местах работать с лишней косвенностью, что убьёт смысл использовать Си.

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

107. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от мявemail (?), 31-Окт-24, 04:49 
смысл не убьет - компилятор с99 в каждой микроволновке, ибo POSIX.
по-моему, его в основном используют там, где нужна порьабельность.
но вообще, я немного о другом говорила.
вопрос был о том, зачем писать дважды, если можно один раз, в общем случае, не о конкретике.
Ответить | Правка | Наверх | Cообщить модератору

75. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  –3 +/
Сообщение от Ivan_83 (ok), 30-Окт-24, 17:21 
Потому что синтаксический сахар вызывает передоз.

Посмотрите на gobject для примера или ещё какой проект где активно юзаеются макросы.
Да даже без макросов многие либы навязывают архитектуру и дизайн приложения.

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

По крайней мере я через это проходил в оба конца, и видел как целые компании пошли по пути написания обёрток и абстракций для всего подряд, получив в итоге вместо кода полное сектанство.
Да, они даже malloc(), free(), str*() и прочее обернули или сами реализовали, и учитывая что я эту шизу проходил это был NIH синдром под лозунгом "зато наш код на любой платформе одинаково плох" :)

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

83. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (84), 30-Окт-24, 18:47 
> как лапшка на крестах - сплошной местячковый диалект на полтора анонима

Лол. В крестах с его RAII таких глупых проблем в принципе нет.

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

106. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (-), 31-Окт-24, 00:58 
>> как лапшка на крестах - сплошной местячковый диалект на полтора анонима
> Лол. В крестах с его RAII таких глупых проблем в принципе нет.

Да уж. Там другие проблемы. В частности - что каждый плюсер хреначит на своем собственном субдиалекте C++. На фоне вон этого, вон то - такие мелочи, право.

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

110. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от мявemail (?), 31-Окт-24, 05:24 
>Да даже без макросов многие либы навязывают архитектуру и дизайн приложения.

хм.. ну, может это не нравится кому-то, действительно.
хотя, мне кажется, это наоборот хорошо.

>притом автор и сам через год не вспомнит

вот локальность - да, может быть проблемой. но можно ж кратко все функции в .md файлах документировать. тем более, есть удобные инструменты для генерации манов.
через год просто
man MyAPI (видишь раздел "Mem")
man MyAPI.Mem, где для каждой функции расписано, какие коды отлавливать надо, когда паника и т.п.

>они даже malloc(), free(), str*() и прочее обернули

так же сделала. а чем плохо это?
штатные реализации можно отключить:
```
#define malloc myAPIPanic("malloc() is blocked, use MemAlloc instend!""
```
,так что ебезопасный вариант не влепишь.

>

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

111. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от мявemail (?), 31-Окт-24, 05:27 
случайно "отправить" нажала.
>это был NIH синдром под лозунгом "зато наш код на любой платформе одинаково плох" :)

почему плох обязательно? и почему nih-синдром?
можно ж обернуть некоторые функции и полностью забыть об определенном классе проблем.
заодно и решить проблемы с поддержкой тех же Окон, перенеся все #define'ы в либу и получив на выходе простой, читаемый код.
это ж хорошо наоборот

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

100. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (-), 30-Окт-24, 23:08 
>[оверквотинг удален]
>     <...> \
>   } while(0)
> ```
> do и while можно в доп. макросы завернуть, улучшив читаемость:
> ```
> #define Macro() \
>   MacroContextBegin() \
>     <...> \
>   MacroContextEnd()
> ```

Фига у некоторых понятия о улучшении читаемости. Теперь всем кто видит это впервые неплохо бы RTFMнуть что есть MacroContextBegin/End и к каким особенностям сие ведет. Ибо изначально имплементация не очевидна. Что для системного яп - такая себе радость. Одно из требований в случае например safety critical типа MISRA это использование стандартного синтаксиса, без хаков. Чтобы другие програмеры не трактовали энный код неверно и не вкатили багов на этой почве.

А если этот аспект пофиг - так никто и не будет читать Macro(). На самом деле это все далеко не главная трабла севых макросов.

> или функции инлайновые почему не использовать? зачем это руками делают, понять не могу?

Инлайновые функции хороши до известного предела.

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

112. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от мявemail (?), 31-Окт-24, 05:34 
>Ибо изначально имплементация не очевидна

так это ж плюс, нет?
вместо того, что б голову себе морочить реализаций - понятный
ContextBegin().
или MacroSaveContext() и MacroEndSaveContext(), условно.

>Что для системного яп - такая себе радость.

почему? вон, в C#, java и тд построение абстракций и скрытие реализации - это вообще поощряемое дело. что и правильно, как мне кажется. зачем это в голове держать, опять же? тем более, что многие редакторы позволяют по 1й кнопке прыгнуть к реализации.

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

30. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  –2 +/
Сообщение от Аноним (29), 30-Окт-24, 07:52 
"системах, в которых X-сервер выполняется с правами root, а также для удалённого выполнения кода в конфигурациях, в которых для доступа используется перенаправление сеанса X11 при помощи SSH. "
иными словами ни в одном адекватно настроенном дистрибутиве проблемы нет.
Ответить | Правка | Наверх | Cообщить модератору

32. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +1 +/
Сообщение от Аноним (31), 30-Окт-24, 08:15 
Прокинуть X11 через SSH - это, всего-лишь, пожелание пользователя, независимо от дистрибутива.
Ответить | Правка | Наверх | Cообщить модератору

43. Скрыто модератором  –6 +/
Сообщение от Fracta1L (ok), 30-Окт-24, 10:22 
Ответить | Правка | Наверх | Cообщить модератору

54. Скрыто модератором  –3 +/
Сообщение от Аноним (-), 30-Окт-24, 11:40 
Ответить | Правка | Наверх | Cообщить модератору

59. Скрыто модератором  +/
Сообщение от Аноним (59), 30-Окт-24, 12:42 
Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

64. Скрыто модератором  +/
Сообщение от Аноним (60), 30-Окт-24, 13:11 
Ответить | Правка | Наверх | Cообщить модератору

96. "Обновление X.Org Server 21.1.14 с устранением уязвимости"  +/
Сообщение от Аноним (-), 30-Окт-24, 22:56 
Кажется теперь новости про иксы все будут выглядеть примерно так...
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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