GNU Screen v.4.5.0

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

GNU Screen v.4.5.0

Сообщение Stauffenberg »

Сегодня ночью зарелизил следующую версию GNU Screen - 4.5.0

Эта версия скорее bugfix release. Было исправлено 6 багов (+ небольшие исправления) и добавлена лишь одна новая фишка - теперь можно укзазывать имя логфайла (используйте для этого параметр -L).
Что-то новое добавляем неохотно, но добавляем. Вообще, концентрируемся сейчас больше на упрощении и чистке кода (ИМХО это важнее), нежелии на программировании новых функций.

У тех кто с форума, есть возможность писать мне прям тут (жалобы, новые идеи, просто пожелания и т.д.) и естественно по-русски. Помните только, что тут общение неофициальное, т.е. никак не может быть слинковано с нашей платформой savannah (никаких линков отсюда туда или "а ты же говорил").

Для пользователей openSUSE: я уже пересобрал screen devel-пакет и отправил его в factory. Так что tumbleweed пользователи смогут установить новую версию уже совсем скоро. Багрепорты отправляйте пожалуйста в openSUSE-багзилу. Я получаю там уведомления.

Исходники, как и обычно, можно скачать на нашем FTP сервере: http://ftp.gnu.org/gnu/screen/
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GNU Screen v.4.5.0

Сообщение Bizdelnick »

Любопытства ради прогнал scan-build. Результат:
scan_build_2017_01_18_173202_4131_1.tar.xz
(439.95 КБ) 19 скачиваний

Как говорится, желаю успехов в труде. ☺
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: GNU Screen v.4.5.0

Сообщение Vascom »

Stauffenberg писал(а):
18.01.2017 16:47
У тех кто с форума, есть возможность писать мне прям тут (жалобы, новые идеи, просто пожелания и т.д.) и естественно по-русски...

Как раз есть жалоба-новая_идея-пожелание.

Ситуация такова: подключаюсь к серверу по ssh -X, запускаю screen и в нём графические приложения (это не веб-сервер, так надо). Через какое-то время (дни, недели) и количество переподключений меняется переменная DISPLAY, но в screen она остаётся прежней и графические приложения отказываются стартовать, пока не изменишь DISPLAY вручную.
Как workaround я сделал себе алиас

Код: Выделить всё

alias screen_update='screen -S main -X setenv DISPLAY $DISPLAY'

Для запуска которого надо деаттачиться от сессии screen, выполнить его и приаттачиться обратно. При этом значение переменной меняется лишь для вновь создаваемых по Ctrl+A-c screen-окон, а для существующих - не меняется.

Очень не удобно всё это получается.
Можно ли добавить какой-то функционал, параметр, чтобы значение переменной DISPLAY внутри сессии screen автоматически приводилось в соответствие с внешней переменной?

И, раз речь идёт о чистке кода, хорошо бы исправить ворнинги
https://kojipkgs.fedoraproject.org//package...86_64/build.log
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: GNU Screen v.4.5.0

Сообщение Stauffenberg »

Vascom писал(а):
19.01.2017 10:14
И, раз речь идёт о чистке кода, хорошо бы исправить ворнинги
https://kojipkgs.fedoraproject.org//package...86_64/build.log

Уже работаю над этим :cc_jockey:

Vascom писал(а):
19.01.2017 10:14
Ситуация такова: подключаюсь к серверу по ssh -X, запускаю screen и в нём графические приложения (это не веб-сервер, так надо). Через какое-то время (дни, недели) и количество переподключений меняется переменная DISPLAY, но в screen она остаётся прежней и графические приложения отказываются стартовать, пока не изменишь DISPLAY вручную.
Как workaround я сделал себе алиас

Код: Выделить всё

alias screen_update='screen -S main -X setenv DISPLAY $DISPLAY'

Для запуска которого надо деаттачиться от сессии screen, выполнить его и приаттачиться обратно. При этом значение переменной меняется лишь для вновь создаваемых по Ctrl+A-c screen-окон, а для существующих - не меняется.

Очень не удобно всё это получается.
Можно ли добавить какой-то функционал, параметр, чтобы значение переменной DISPLAY внутри сессии screen автоматически приводилось в соответствие с внешней переменной?

Ок, спасибо. Я посмотрю что можно с этим сделать.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: GNU Screen v.4.5.0

Сообщение sash-kan »

Vascom писал(а):
19.01.2017 10:14
Как workaround я сделал себе алиас
а можно и так:

Код: Выделить всё

$ alias screen_update='screen -S main -X stuff "export DISPLAY=$DISPLAY\n"'

только оболочка в screen-е в момент использования должна быть свободна для выполнения команды.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: GNU Screen v.4.5.0

Сообщение Vascom »

Можно, но неудобства это не уменьшает.
Кстати, не знаю как с этим обстоят дела в tmux, не проверял.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: GNU Screen v.4.5.0

Сообщение Stauffenberg »

Bizdelnick писал(а):
18.01.2017 17:39
Любопытства ради прогнал scan-build. Результат:

Спасибо.
Протокол сборки в Debian окружении доступен online, что на много удобнее :)
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GNU Screen v.4.5.0

Сообщение Bizdelnick »

Stauffenberg писал(а):
19.01.2017 23:24
Протокол сборки в Debian окружении доступен online, что на много удобнее :)

Причём тут протокол сборки? scan-build — это статический анализатор, сборка у него — побочный продукт работы. И ошибки он показывает куда более серьёзные, чам варнинги от gcc. На мой взгляд, достаточно серьёзные, чтобы схватиться за голову и с криком «АААА!» побежать готовить багфикс-релиз. Может быть, даже несколько CVE завести.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: GNU Screen v.4.5.0

Сообщение Stauffenberg »

Bizdelnick писал(а):
20.01.2017 00:12
На мой взгляд, достаточно серьёзные, чтобы схватиться за голову и с криком «АААА!» побежать готовить багфикс-релиз. Может быть, даже несколько CVE завести.

Интересно, а пример-другой показать сможете? :)
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GNU Screen v.4.5.0

Сообщение Bizdelnick »

Stauffenberg
Так там показано, и не один-другой, а 64. Конечно, часть из них — фолсы, от этого никуда не денешься, но реальные ошибки как правило в большинстве.
Например из раздела «Security»: в screen.c по 6 раз вызываются setuid и setgid (через макрос SET_GUID()) без проверки возвращаемого значения. Это значит, что в случае ошибки привилегии не будут понижены, и это останется незамеченным. Видимо, надо переписать макрос или заменить его функцией, которая будет вести себя более умно.
Большинство ошибок очень неочевидные, и чтобы понять, что к чему, надо вникать, по какой ветви выполнения анализатор шёл (все ветвления пронумерованы). Например см. report-2db7dc.html#EndPath — разыменование нулевого указателя. Как вышло, что указатель оказался нулевым, можно понять, только пройдя вверх по ссылкам.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: GNU Screen v.4.5.0

Сообщение Stauffenberg »

Bizdelnick писал(а):
20.01.2017 01:58
Например из раздела «Security»: в screen.c по 6 раз вызываются setuid и setgid (через макрос SET_GUID()) без проверки возвращаемого значения.
Обо всем этом говорит и gcc по ссылке выше...

Bizdelnick писал(а):
20.01.2017 01:58
Большинство ошибок очень неочевидные, и чтобы понять, что к чему, надо вникать, по какой ветви выполнения анализатор шёл (все ветвления пронумерованы). Например см. report-2db7dc.html#EndPath — разыменование нулевого указателя. Как вышло, что указатель оказался нулевым, можно понять, только пройдя вверх по ссылкам.

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


В любом случае, спасибо, что потратили время и сгенерировали репорт. Скажите кстати, как именно Вы его сгенерировали?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GNU Screen v.4.5.0

Сообщение Bizdelnick »

Stauffenberg писал(а):
20.01.2017 02:17
почему никто не жалуется на креш...(?)

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

Stauffenberg писал(а):
20.01.2017 02:17
Скажите кстати, как именно Вы его сгенерировали?

./configure && scan-build make
http://clang-analyzer.llvm.org/scan-build.html
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: GNU Screen v.4.5.0

Сообщение Stauffenberg »

Просто ради интереса прогнал OpenSSH-7.4p в scan-build, чтобы сравнить, так сказать, качество кода.
Результат показал 63 (из них Dereference of null pointer --> 23 ) - да, на один меньше, чем в GNU Screen.

Не то, чтобы я считал это нормальным, но... в общем, качество кода обоих проектов приблизительно одинаковое :)

Bizdelnick писал(а):
20.01.2017 00:12
На мой взгляд, достаточно серьёзные, чтобы схватиться за голову и с криком «АААА!» побежать готовить багфикс-релиз. Может быть, даже несколько CVE завести.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GNU Screen v.4.5.0

Сообщение Bizdelnick »

Может быть. Судить не берусь, потому что с архивом что-то не так: то ли он неполный, то ли index кривой, но списка я не вижу.
Вообще же надо учитывать, что статический анализ всегда даёт фолсы. Например, он может предположить, что функция может получать на вход нулевой указатель, хотя фактически такого не происходит. В таких случаях хорошим стилем было бы вставить assert(ptr != NULL), анализатор бы и успокоился.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GNU Screen v.4.5.0

Сообщение Bizdelnick »

Stauffenberg писал(а):
20.01.2017 02:17
Bizdelnick писал(а):
20.01.2017 01:58
Например из раздела «Security»: в screen.c по 6 раз вызываются setuid и setgid (через макрос SET_GUID()) без проверки возвращаемого значения.
Обо всем этом говорит и gcc по ссылке выше...

А вот свежий пример того, к чему это приводит: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6964
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: GNU Screen v.4.5.0

Сообщение Stauffenberg »

Bizdelnick писал(а):
29.03.2017 15:08
Stauffenberg писал(а):
20.01.2017 02:17
Bizdelnick писал(а):
20.01.2017 01:58
Например из раздела «Security»: в screen.c по 6 раз вызываются setuid и setgid (через макрос SET_GUID()) без проверки возвращаемого значения.
Обо всем этом говорит и gcc по ссылке выше...

А вот свежий пример того, к чему это приводит: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6964

Ну так давайте же напишем патч!!!
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: GNU Screen v.4.5.0

Сообщение Bizdelnick »

Так давайте же пишите! Мне это малоинтересно, я screen не пользуюсь.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить