]> git.pld-linux.org Git - packages/screen.git/blame - screen-debian_fixed.patch
- prepared 4.0.2 for Ra as CAN-2003-0972 fix (no root or any group exploit,
[packages/screen.git] / screen-debian_fixed.patch
CommitLineData
46dabc15
PG
1--- ./doc/screen.1.org Wed Jun 19 13:36:55 2002
2+++ ./doc/screen.1 Wed Jun 19 13:47:46 2002
3@@ -1040,7 +1040,7 @@
4 .PP
5 Change the filename used for reading and writing with the paste buffer.
6 If the optional argument to the \*Qbufferfile\*U command is omitted,
7-the default setting (\*Q/tmp/screen-exchange\*U) is reactivated.
8+the default setting (\*Q$HOME/.screen-exchange\*U) is reactivated.
9 The following example will paste the system's password file into
10 the
11 .I screen
12@@ -1308,7 +1308,7 @@
13 .br
14 .ti -2n
15 \fB>\fP sets the (second) mark and writes the contents of the paste buffer to
16-the screen-exchange file (/tmp/screen-exchange per default) once copy-mode is
17+the screen-exchange file ($HOME/.screen-exchange per default) once copy-mode is
18 finished.
19 .br
20 This example demonstrates how to dump the whole scrollback buffer
21@@ -2940,7 +2940,7 @@
22 users on the same host. If an encoding is specified the paste buffer
23 is recoded on the fly to match the encoding.
24 The filename can be set with the \fIbufferfile\fP
25-command and defaults to \*Q/tmp/screen-exchange\*U.
26+command and defaults to \*Q$HOME/.screen-exchange\*U.
27 .sp
28 .ne 3
29 .BR "writelock " [ on | "off\fR|\fBauto\fR]"
30@@ -4284,7 +4284,7 @@
31 Written by the "termcap" output function
32 .IP /tmp/screens/screen-exchange
33 or
34-.IP /tmp/screen-exchange
35+.IP $HOME/.screen-exchange
36 .I screen
37 `interprocess communication buffer'
38 .IP hardcopy.[0-9]
39--- ./doc/screen.texinfo.org Wed Jun 19 13:36:55 2002
40+++ ./doc/screen.texinfo Wed Jun 19 13:49:42 2002
41@@ -3000,7 +3000,7 @@
42
43 @noindent
44 @kbd{>} sets the (second) mark and writes the contents of the paste buffer
45-to the screen-exchange file (@file{/tmp/screen-exchange} per default)
46+to the screen-exchange file (@file{$HOME/.screen-exchange} per default)
47 once copy-mode is finished. @xref{Screen Exchange}.@*
48 This example demonstrates how to dump the
49 whole scrollback buffer to that file: @*@kbd{C-a [ g SPACE G $ >}.
50@@ -3124,7 +3124,7 @@
51 (none)@*
52 Change the filename used for reading and writing with the paste buffer.
53 If the @var{exchange-file} parameter is omitted, @code{screen} reverts
54-to the default of @file{/tmp/screen-exchange}. The following example
55+to the default of @file{$HOME/.screen-exchange}. The following example
56 will paste the system's password file into the screen window (using the
57 paste buffer, where a copy remains):
58
59@@ -4843,7 +4843,7 @@
60 Written by the @code{dumptermcap} command
61
62 @item /usr/tmp/screens/screen-exchange or
63-@itemx /tmp/screen-exchange
64+@itemx $HOME/.screen-exchange
65 @code{screen} interprocess communication buffer
66
67 @item hardcopy.[0-9]
68--- ./etc/etcscreenrc.org Sat Apr 28 17:25:34 2001
69+++ ./etc/etcscreenrc Wed Jun 19 13:51:34 2002
70@@ -1,6 +1,6 @@
71 #
72 # This is an example for the global screenrc file.
73-# You may want to install this file as /usr/local/etc/screenrc.
74+# You may want to install this file as /etc/screenrc.
75 # Check config.h for the exact location.
76 #
77 # Flaws of termcap and standard settings are done here.
78@@ -92,3 +92,6 @@
79 bind 'O' login off
80 bind '}' history
81
82+# On Debian GNU/Linux, `<--' (Backspace key) should send char `\177':
83+bindkey -k kb stuff "\177"
84+
85--- ./process.c.org Mon Feb 11 13:30:08 2002
86+++ ./process.c Wed Jun 19 13:52:22 2002
87@@ -2356,7 +2356,7 @@
88 #ifdef COPY_PASTE
89 case RC_BUFFERFILE:
90 if (*args == 0)
91- BufferFile = SaveStr(DEFAULT_BUFFERFILE);
92+ BufferFile = SaveStr(bufferfile);
93 else if (ParseSaveStr(act, &BufferFile))
94 break;
95 if (msgok)
96--- ./screen.c.org Mon Feb 11 13:39:06 2002
97+++ ./screen.c Wed Jun 19 14:00:37 2002
98@@ -109,6 +109,7 @@
99 FILE *dfp;
100 #endif
101
102+char bufferfile[MAXPATHLEN];
103
104 extern char Term[], screenterm[], **environ, Termcap[];
105 int force_vt = 1;
106@@ -271,7 +272,7 @@
107 char *name;
108 struct passwd *ppp;
109 {
110- int n;
111+ int n, len;
112 #ifdef SHADOWPW
113 struct spwd *sss = NULL;
114 static char *spw = NULL;
115@@ -285,13 +286,18 @@
116 pw_try_again:
117 #endif
118 n = 0;
119+ len = 13;
120 if (ppp->pw_passwd[0] == '#' && ppp->pw_passwd[1] == '#' &&
121 strcmp(ppp->pw_passwd + 2, ppp->pw_name) == 0)
122 n = 13;
123- for (; n < 13; n++)
124+ else if (!strncmp(ppp->pw_passwd, "$1$", 3)) { /* MD5-based passwords */
125+ n = 13;
126+ len = 34;
127+ }
128+ for (; n < len; n++)
129 {
130 char c = ppp->pw_passwd[n];
131- if (!(c == '.' || c == '/' || c == '$' ||
132+ if (!(c == '.' || c == '/' || (len == 34 && c == '$') ||
133 (c >= '0' && c <= '9') ||
134 (c >= 'a' && c <= 'z') ||
135 (c >= 'A' && c <= 'Z')))
136@@ -435,9 +441,6 @@
137 timestring = SaveStr("%c:%s %M %d %H%? %l%?");
138 wlisttit = SaveStr("Num Name%=Flags");
139 wliststr = SaveStr("%3n %t%=%f");
140-#ifdef COPY_PASTE
141- BufferFile = SaveStr(DEFAULT_BUFFERFILE);
142-#endif
143 ShellProg = NULL;
144 #ifdef POW_DETACH
145 PowDetachString = 0;
146@@ -902,6 +905,8 @@
147 #endif /* DEBUG */
148 }
149
150+ snprintf(bufferfile,sizeof(bufferfile),"%s/.screen-exchange", home);
151+ BufferFile = SaveStr(bufferfile);
152 #ifdef _MODE_T
153 oumask = umask(0); /* well, unsigned never fails? jw. */
154 #else
155--- ./screen.h.org Tue Jan 8 16:42:45 2002
156+++ ./screen.h Wed Jun 19 14:01:15 2002
157@@ -44,6 +44,7 @@
158 #include "layer.h"
159 #include "term.h"
160
161+extern char bufferfile[MAXPATHLEN];
162
163 #ifdef DEBUG
164 # define STATIC /* a function that the debugger should see */
165--- ./window.c.org Tue Jan 8 20:47:31 2002
166+++ ./window.c Wed Jun 19 14:03:39 2002
167@@ -1549,6 +1549,12 @@
168 FreePseudowin(w);
169 return -1;
170 }
171+ if (ioctl(w->w_ptyfd, TIOCPKT, (char *)&flag))
172+ {
173+ Msg(errno, "TIOCPKT ioctl on parent");
174+ FreePseudowin(w);
175+ return -1;
176+ }
177 }
178 #endif /* TIOCPKT */
179
180@@ -1587,6 +1593,14 @@
181 w->w_readev.condpos = w->w_readev.condneg = 0;
182 free((char *)pwin);
183 w->w_pwin = NULL;
184+#ifdef TIOCPKT
185+ {
186+ int flag = 1;
187+
188+ if (ioctl(w->w_ptyfd, TIOCPKT, (char *)&flag))
189+ Msg(errno, "TIOCPKT reset on parent failed");
190+ }
191+#endif /* TIOCPKT */
192 }
193
194 #endif /* PSEUDOS */
This page took 0.093867 seconds and 4 git commands to generate.