GNU Screen v.4.5.0
Модератор: Модераторы разделов
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
GNU Screen v.4.5.0
Сегодня ночью зарелизил следующую версию GNU Screen - 4.5.0
Эта версия скорее bugfix release. Было исправлено 6 багов (+ небольшие исправления) и добавлена лишь одна новая фишка - теперь можно укзазывать имя логфайла (используйте для этого параметр -L).
Что-то новое добавляем неохотно, но добавляем. Вообще, концентрируемся сейчас больше на упрощении и чистке кода (ИМХО это важнее), нежелии на программировании новых функций.
У тех кто с форума, есть возможность писать мне прям тут (жалобы, новые идеи, просто пожелания и т.д.) и естественно по-русски. Помните только, что тут общение неофициальное, т.е. никак не может быть слинковано с нашей платформой savannah (никаких линков отсюда туда или "а ты же говорил").
Для пользователей openSUSE: я уже пересобрал screen devel-пакет и отправил его в factory. Так что tumbleweed пользователи смогут установить новую версию уже совсем скоро. Багрепорты отправляйте пожалуйста в openSUSE-багзилу. Я получаю там уведомления.
Исходники, как и обычно, можно скачать на нашем FTP сервере: http://ftp.gnu.org/gnu/screen/
Эта версия скорее 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)
"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
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GNU Screen v.4.5.0
Любопытства ради прогнал scan-build. Результат:
Как говорится, желаю успехов в труде. ☺
Как говорится, желаю успехов в труде. ☺
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: GNU Screen v.4.5.0
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
Vascom писал(а): ↑19.01.2017 10:14И, раз речь идёт о чистке кода, хорошо бы исправить ворнинги
https://kojipkgs.fedoraproject.org//package...86_64/build.log
Уже работаю над этим
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)
"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)
Re: GNU Screen v.4.5.0
а можно и так:
Код: Выделить всё
$ alias screen_update='screen -S main -X stuff "export DISPLAY=$DISPLAY\n"'
только оболочка в screen-е в момент использования должна быть свободна для выполнения команды.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Спасибо сказали:
Re: GNU Screen v.4.5.0
Можно, но неудобства это не уменьшает.
Кстати, не знаю как с этим обстоят дела в tmux, не проверял.
Кстати, не знаю как с этим обстоят дела в tmux, не проверял.
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: GNU Screen v.4.5.0
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)
"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
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GNU Screen v.4.5.0
Stauffenberg писал(а): ↑19.01.2017 23:24Протокол сборки в Debian окружении доступен online, что на много удобнее
Причём тут протокол сборки? scan-build — это статический анализатор, сборка у него — побочный продукт работы. И ошибки он показывает куда более серьёзные, чам варнинги от gcc. На мой взгляд, достаточно серьёзные, чтобы схватиться за голову и с криком «АААА!» побежать готовить багфикс-релиз. Может быть, даже несколько CVE завести.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: GNU Screen v.4.5.0
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)
"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
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GNU Screen v.4.5.0
Stauffenberg
Так там показано, и не один-другой, а 64. Конечно, часть из них — фолсы, от этого никуда не денешься, но реальные ошибки как правило в большинстве.
Например из раздела «Security»: в screen.c по 6 раз вызываются setuid и setgid (через макрос SET_GUID()) без проверки возвращаемого значения. Это значит, что в случае ошибки привилегии не будут понижены, и это останется незамеченным. Видимо, надо переписать макрос или заменить его функцией, которая будет вести себя более умно.
Большинство ошибок очень неочевидные, и чтобы понять, что к чему, надо вникать, по какой ветви выполнения анализатор шёл (все ветвления пронумерованы). Например см. report-2db7dc.html#EndPath — разыменование нулевого указателя. Как вышло, что указатель оказался нулевым, можно понять, только пройдя вверх по ссылкам.
Так там показано, и не один-другой, а 64. Конечно, часть из них — фолсы, от этого никуда не денешься, но реальные ошибки как правило в большинстве.
Например из раздела «Security»: в screen.c по 6 раз вызываются setuid и setgid (через макрос SET_GUID()) без проверки возвращаемого значения. Это значит, что в случае ошибки привилегии не будут понижены, и это останется незамеченным. Видимо, надо переписать макрос или заменить его функцией, которая будет вести себя более умно.
Большинство ошибок очень неочевидные, и чтобы понять, что к чему, надо вникать, по какой ветви выполнения анализатор шёл (все ветвления пронумерованы). Например см. report-2db7dc.html#EndPath — разыменование нулевого указателя. Как вышло, что указатель оказался нулевым, можно понять, только пройдя вверх по ссылкам.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: GNU Screen v.4.5.0
Обо всем этом говорит и gcc по ссылке выше...Bizdelnick писал(а): ↑20.01.2017 01:58Например из раздела «Security»: в screen.c по 6 раз вызываются setuid и setgid (через макрос SET_GUID()) без проверки возвращаемого значения.
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)
"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
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GNU Screen v.4.5.0
Если посмотреть комментарии под новостями на опеннете, то жалобы на сегфолты можно найти. Мало их, видимо, потому что в реальных условиях воспроизведение маловероятно.
./configure && scan-build make
http://clang-analyzer.llvm.org/scan-build.html
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: GNU Screen v.4.5.0
Просто ради интереса прогнал OpenSSH-7.4p в scan-build, чтобы сравнить, так сказать, качество кода.
Результат показал 63 (из них Dereference of null pointer --> 23 ) - да, на один меньше, чем в GNU Screen.
Не то, чтобы я считал это нормальным, но... в общем, качество кода обоих проектов приблизительно одинаковое
Результат показал 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)
"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
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GNU Screen v.4.5.0
Может быть. Судить не берусь, потому что с архивом что-то не так: то ли он неполный, то ли index кривой, но списка я не вижу.
Вообще же надо учитывать, что статический анализ всегда даёт фолсы. Например, он может предположить, что функция может получать на вход нулевой указатель, хотя фактически такого не происходит. В таких случаях хорошим стилем было бы вставить assert(ptr != NULL), анализатор бы и успокоился.
Вообще же надо учитывать, что статический анализ всегда даёт фолсы. Например, он может предположить, что функция может получать на вход нулевой указатель, хотя фактически такого не происходит. В таких случаях хорошим стилем было бы вставить assert(ptr != NULL), анализатор бы и успокоился.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GNU Screen v.4.5.0
Stauffenberg писал(а): ↑20.01.2017 02:17Обо всем этом говорит и gcc по ссылке выше...Bizdelnick писал(а): ↑20.01.2017 01:58Например из раздела «Security»: в screen.c по 6 раз вызываются setuid и setgid (через макрос SET_GUID()) без проверки возвращаемого значения.
А вот свежий пример того, к чему это приводит: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6964
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Stauffenberg
- Сообщения: 2042
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: GNU Screen v.4.5.0
Bizdelnick писал(а): ↑29.03.2017 15:08Stauffenberg писал(а): ↑20.01.2017 02:17Обо всем этом говорит и gcc по ссылке выше...Bizdelnick писал(а): ↑20.01.2017 01:58Например из раздела «Security»: в screen.c по 6 раз вызываются setuid и setgid (через макрос SET_GUID()) без проверки возвращаемого значения.
А вот свежий пример того, к чему это приводит: 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)
"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
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: GNU Screen v.4.5.0
Так давайте же пишите! Мне это малоинтересно, я screen не пользуюсь.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |