| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
When run as setuid root, one can send a query message to the
privileged screen process via its unix socket in order to force
it to send SIGHUP to a PID that can be freely specified in the
query packet.
Processes that do not explicitly handle SIGHUP will simply terminate.
Signed-off-by: Alexander Naumov <alexander_naumov@opensuse.org>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
As documented in libutempter:
"During execution of the privileged process spawned by these
functions, SIGCHLD signal handler will be temporarily set to
the default action."
Thus in case a SIGCHLD has been lost, we send a SIGCHLD to
oneself in order to avoid zombies:
https://savannah.gnu.org/bugs/?25089
|
|
|
|
|
|
|
|
|
|
|
| |
It allows remote attackers to cause a denial of service
(invalid write access and application crash) or possibly
have unspecified other impact via a crafted UTF-8
character sequence.
bugfix: https://savannah.gnu.org/bugs/?60030
Signed-off-by: Alexander Naumov <alexander_naumov@opensuse.org>
|
| |
|
|
|
|
|
|
| |
A cross-reference was intended to be placed inside parentheses,
but the closing parenthesis was forgotten; this commit inserts
that missing closing parenthesis.
|
|
|
|
|
|
| |
In the description of the 'stuff' command, there
was the typo "paramter"; this commit makes that
word "parameter".
|
|
|
|
|
|
| |
bug #37437
Thanks to Taj Morton
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 7059bff expands index range of "typ2" by one without expanding
affected arrays. d_xtermosc in struct display is one of these.
Related: 7059bff20a28778f9d3acf81cad07b1388d02309
(ansi: add support for xterm OSC 11)
Related: eb2be1adf92d58bd8f4ca3458eb04da38bf33c2b
(Fix out of bounds access when setting w_xtermosc after OSC 49)
Signed-off-by: Václav Doležal <vdolezal@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
hyperlink feature used by some terminals requires lots of characters
https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda#length-limits
mentions around 2083 characters, set it to a bit more.
Bug: 57718
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
echo -e "\e]49\e; \n\ec"
crashes screen.
This happens because 49 is divided by 10 and used as table index
resulting in access to w_xtermosc[4], which is out of bounds with table
itself being size 4. Increase size of table by 1 to 5, which is enough
for all current uses.
As this overwrites memory based on user input it is potential security
issue.
Reported-by: pippin@gimp.org
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
|
|
| |
String escape format of %C for number of windows with - prefix for
group window count.
Bug: 14484
Signed-off-by: Ed Neville <ed@s5h.net>
|
|
|
|
|
|
|
|
|
| |
If there is no event timeout set just wait for 1 second instead of
setting poll timeout to 0.
Bug: 57697
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
| |
* libnetwork for sockets,
* libbsd for openpty.
|
|
|
|
| |
not everyone defines pid_t as int...
|
|
|
|
| |
AC_SEARCH_LIBS prepends the found library already.
|
|
|
|
|
| |
Haiku doesn't have sys/dir.h which is deprecated anyway,
so it's better to actually use dirent.h if found.
|
|
|
|
| |
* src/acls.c (DoSu): avoid four unused-variable warnings
|
|
|
|
|
|
|
| |
* src/tests/test-winmsgbuf.c (main): Replace alloca with malloc/free
to prevent the following warning: tests/test-winmsgbuf.c:298:19:\
warning: implicit declaration of function ‘alloca’; did you mean \
‘calloc’?
|
|
|
|
|
|
|
| |
* src/tests/test-winmsgbuf.c:45: make char * const
This avoids the following warning:
tests/test-winmsgbuf.c:45:17: warning: initialization of\
‘char *[...]'from incompatible pointer type ‘const char *[...]'
|
|
|
|
| |
* src/acls.c (DoSu): avoid two unused-variable warnings
|
|
|
|
|
|
| |
* src/acls.c (GrowBitfield): replace NULL by (char *)NULL.
This avoids the following warning:
acls.h:44:35: warning: dereferencing ‘void *’ pointer
|
|
|
|
|
|
|
|
|
| |
If wmc_else() is called after wmb_expand() it can overwrite pointer to
old value. To avoid this issue refactor condition code to use offset
into parsed string instead.
Reported-by: pippin@gimp.org
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
| |
|
|
|
|
| |
Bug #57571
|
|
|
|
| |
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
|
| |
ParseAttrColor returns uint64_t and ApplyAttrColor takes uint64_t as
argument, int was used instead, which may cause vertical bar to not have
color applied on split.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When opening a TTY we enable exclusive mode to prevent other tools
messing with our connection. When we are done using the TTY the
exclusive mode must be disabled so the TTY can be reconnected to
later. We remember to do this when a break is sent to the device,
but not on window close.
This change ensures we disable exclusive mode on the TTY device
whenever the window is closed.
bug #52248
|
|
|
|
|
|
|
|
|
|
|
|
| |
TERMCAP_BUF defaults to 1023 to create TERMCAP entries that work on
most systems. To save space, TERMCAP is unwrapped, and vt220 extra
keys are skipped (unless TERMCAP_BUF > 1023); navigation keys are
still included. Entries larger than TERMCAP_BUF are now truncated,
and no longer Panic screen.
Termcap entries are still wrapped when saved to a file.
Signed-off-by: Scott Shambarger <devel@shambarger.net>
|
|
|
|
|
|
|
|
|
|
|
| |
Here's the rub: with TERM=xterm (or rxvt, for that matter), Km
("key_mouse", "Mouse event has occured") is not set (and therefore
NULL), but InitTermcap() (termcap.c:230) happily tries to strdup() that,
which gets us that segfault.
As a band-aid, catch that NULL and don't strdup().
Signed-off-by: Marcin Cieślak <saper@saper.info>
|
|
|
|
|
|
|
| |
poll() accepts timeout in milliseconds, so there is no need to keep
timeout in struct timeval.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
select() limits number of file descriptors that can be used by screen.
Migrate to poll() to avoid this limitation.
As can be seen in case of scheduler it requires quite some changes, care
must be taken to count poll() events properly.
Bug: 55697
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
|
|
| |
select() limits number of file descriptors that can be used by screen.
Migrate to poll() to avoid this limitation.
Bug: 55697
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
|
|
| |
select() limits number of file descriptors that can be used by screen.
Migrate to poll() to avoid this limitation.
Bug: 55697
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
|
|
|
|
| |
Optimize startup time, making closeallfiles() faster, by doing less
system calls. Instead of calling close for each possible file, use
poll() to check if file exist at all. On linux with open file limit set
to 1048576, it should do 1024 poll() calls instead of 1048576 close().
Bug: 55618
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
| |
|
|
|
|
| |
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
| |
Just include correct headers.
We need to expose af properly in screen.h for this to work.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ncurses 6.1 changed kmous capability from "\e[M" to "\e[<". It seems to
be done to signal that terminal supports sgr mouse mode. screen assumed
that if kmous is set to "\e[M" it is on xterm compatible terminal
anyway, so just dynamically detect which one is used and override
relevant kmapdef.
InitKeytab() is moved, so kmapdef[] can be overriden before
initialization, as InitTermcap() needs to run first, as far as I can
tell this should have no consequences.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
| |
Shouldn't have really used strncpy, for something that is effectively
binary data.
Also cleanup structs when defining instead of adding memsets everywhere.
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit ceb9b1f6ec6378c83566af0029ddefcc825ba6d4.
I need to look at this again, there is a report that commit in question
may cause problems and apparently logic may have failed me when I
removed this code, as it probably should stay and everything after it is
unreacheable.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
|
|
|
| |
Fixes problem when pressing arrows in some prompts causes arrows to stop
in other places.
For example pressing up arrow in 'kill --confirm' prompt stops up arrow
from working on 'windowlist'
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
| |
According to parent "if" condition this is never the case
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
| |
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
|
|
| |
Breaks backward compatibility
This fixes a problem when user runs screen with "-L" option in already
existing screen. We need to pass information about theflag to backend.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
| |
We don't know format of data we pass around, so we may as well define
pointer as void *. Gets rid of -Wcast-align warning with clang.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|
|
|
|
|
|
|
| |
Define d_processinputdata as struct pwdata instead of doing casts back
and forth. Removes clang warning with -Wcast-align.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
|