summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-editors/joe/files/joe2.8.dif')
-rw-r--r--app-editors/joe/files/joe2.8.dif286
1 files changed, 286 insertions, 0 deletions
diff --git a/app-editors/joe/files/joe2.8.dif b/app-editors/joe/files/joe2.8.dif
new file mode 100644
index 000000000000..37009d869597
--- /dev/null
+++ b/app-editors/joe/files/joe2.8.dif
@@ -0,0 +1,286 @@
+--- b.c
++++ b.c 2000/03/02 13:15:55
+@@ -15,8 +15,15 @@
+ You should have received a copy of the GNU General Public License along with
+ JOE; see the file COPYING. If not, write to the Free Software Foundation,
+ 675 Mass Ave, Cambridge, MA 02139, USA. */
++/*
++DEADJOE tmp race condition security fix by thomas@suse.de
++at 1999-07-23
++*/
+
+ #include <stdio.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+ #ifndef __MSDOS__
+ #include <pwd.h>
+ #endif
+@@ -1990,7 +1997,30 @@
+ {
+ long tim=time(0);
+ B *b;
+- FILE *f=fopen("DEADJOE","a");
++ FILE *f;
++ int tmpfd;
++ struct stat sbuf;
++
++ if((tmpfd = open("DEADJOE", O_RDWR|O_EXCL|O_CREAT, 0600)) < 0) {
++ if(lstat("DEADJOE", &sbuf) < 0)
++ _exit(-1);
++ if(!S_ISREG(sbuf.st_mode) || sbuf.st_uid != geteuid())
++ _exit(-1);
++ /*
++ A race condition still exists between the lstat() and the open()
++ systemcall, which leads to a possible denial-of-service attack
++ by setting the file access mode to 600 for every file the
++ user executing joe has permissions to.
++ This can't be fixed w/o breacking the behavior of the orig. joe!
++ */
++ if((tmpfd = open("DEADJOE", O_RDWR|O_APPEND)) < 0)
++ _exit(-1);
++ if(fchmod(tmpfd, S_IRUSR|S_IWUSR) < 0)
++ _exit(-1);
++ }
++ if((f = fdopen(tmpfd, "a")) == NULL)
++ _exit(-1);
++
+ fprintf(f,"\n*** Modified files in JOE when it aborted on %s",ctime(&tim));
+ if(sig) fprintf(f,"*** JOE was aborted by signal %d\n",sig);
+ else fprintf(f,"*** JOE was aborted because the terminal closed\n");
+--- conf.c
++++ conf.c 2000/03/02 13:15:55
+@@ -204,8 +204,10 @@
+ fprintf(f,"\n");
+
+ fprintf(f,"char *getenv();\n");
++ fprintf(f,"#ifndef __alpha__\n");
+ if(sizeof(long)==8) fprintf(f,"int time();\n");
+ else fprintf(f,"long time();\n");
++ fprintf(f,"#endif\n");
+ fprintf(f,"void *malloc();\n");
+ fprintf(f,"void free();\n");
+ fprintf(f,"void *calloc();\n");
+--- jmacsrc
++++ jmacsrc 2000/03/02 13:15:55
+@@ -376,6 +376,8 @@
+ bof ^[ < Goto beginning of file
+ bol .kh Goto beginning of line
+ bol ^A
++bol ^[ [ H
++bol ^[ [ 1 ~
+ bop ^[ p (uemacs)
+ bufed ^X b
+ bknd ^[ ' Shell window
+@@ -394,6 +396,8 @@
+ eof ^[ > Go to end of file
+ eol .kH Go to end of line
+ eol ^E
++eol ^[ [ F
++eol ^[ [ 4 ~
+ eop ^[ n (uemacs)
+ execmd ^[ x
+ insc ^C (uemacs)
+--- joerc
++++ joerc 2000/03/02 13:15:55
+@@ -25,7 +25,7 @@
+
+ -marking Text between ^KB and cursor is highlighted (use with -lightoff)
+
+- -asis Characters 128 - 255 shown as-is
++-asis Characters 128 - 255 shown as-is
+
+ -force Force final newline when files are saved
+
+@@ -456,6 +456,8 @@
+ bof ^K u
+ bol .kh Goto beginning of line
+ bol ^A
++bol ^[ [ H
++bol ^[ [ 1 ~
+ center ^K A Center line
+ center ^K ^A
+ center ^K a
+@@ -478,6 +480,8 @@
+ eof ^K v
+ eol .kH Go to end of line
+ eol ^E
++eol ^[ [ F
++eol ^[ [ 4 ~
+ exsave ^K X Save and exit
+ exsave ^K ^X
+ exsave ^K x
+--- jpicorc
++++ jpicorc 2000/03/02 13:15:55
+@@ -351,6 +351,8 @@
+ bof ^[ y
+ bol .kh Goto beginning of line
+ bol ^A
++bol ^[ [ H
++bol ^[ [ 1 ~
+ center ^[ ^C Center line
+ center ^[ c
+ delch .kD Delete character
+@@ -373,6 +375,8 @@
+ eof ^[ v
+ eol .kH Go to end of line
+ eol ^E
++eol ^[ [ F
++eol ^[ [ 4 ~
+ execmd ^[ X Prompt for command to execute
+ execmd ^[ ^X Prompt for command to execute
+ execmd ^[ x Prompt for command to execute
+--- jstarrc
++++ jstarrc 2000/03/02 13:15:55
+@@ -371,6 +371,8 @@
+ bof ^Q ^R
+ bof ^Q r
+ bol .kh Goto beginning of line
++bol ^[ [ H
++bol ^[ [ 1 ~
+ bol ^Q S
+ bol ^Q ^S
+ bol ^Q s
+@@ -403,6 +405,8 @@
+ eof ^Q ^C
+ eof ^Q c
+ eol .kH Go to end of line
++eol ^[ [ F
++eol ^[ [ 4 ~
+ eol ^Q D
+ eol ^Q ^D
+ eol ^Q d
+--- Makefile
++++ Makefile 2000/03/02 13:15:55
+@@ -9,15 +9,15 @@
+ # to go and where you want the man page
+ # to go:
+
+-WHEREJOE = /usr/local/bin
+-WHERERC = /usr/local/lib
+-WHEREMAN = /usr/man/man1
++WHEREJOE = /usr/bin
++WHERERC = /usr/lib
++WHEREMAN = /usr/man/man1
+
+ # If you want to use TERMINFO, you have to set
+ # the following variable to 1. Also you have to
+ # include some additional libraries- see below.
+
+-TERMINFO = 0
++TERMINFO = 1
+
+ # You may also have to add some additional
+ # defines to get the include files to work
+@@ -27,11 +27,11 @@
+
+ # C compiler options: make's built-in rules use this variable
+
+-CFLAGS = -O
++CFLAGS = -O2 -fsigned-char -fomit-frame-pointer -pipe
+
+ # C compiler to use: make's built-in rules use this variable
+
+-CC = cc
++CC = gcc
+
+ # You may have to include some extra libraries
+ # for some systems
+@@ -45,7 +45,7 @@
+ # add '-ltinfo', '-lcurses' or '-ltermlib',
+ # depending on the system.
+
+-EXTRALIBS =
++EXTRALIBS = -lncurses
+
+ # Object files
+
+@@ -85,44 +85,36 @@
+ # Install proceedure
+
+ install: joe termidx
+- strip joe
+- strip termidx
+ if [ ! -d $(WHEREJOE) ]; then mkdir $(WHEREJOE); chmod a+rx $(WHEREJOE); fi
+ rm -f $(WHEREJOE)/joe $(WHEREJOE)/jmacs $(WHEREJOE)/jstar $(WHEREJOE)/jpico $(WHEREJOE)/rjoe $(WHEREJOE)/termidx
+- mv joe $(WHEREJOE)
+- ln $(WHEREJOE)/joe $(WHEREJOE)/jmacs
+- ln $(WHEREJOE)/joe $(WHEREJOE)/jstar
+- ln $(WHEREJOE)/joe $(WHEREJOE)/rjoe
+- ln $(WHEREJOE)/joe $(WHEREJOE)/jpico
+- mv termidx $(WHEREJOE)
++ install -s joe $(WHEREJOE)
++ ln -s $(WHEREJOE)/joe $(WHEREJOE)/jmacs
++ ln -s $(WHEREJOE)/joe $(WHEREJOE)/jstar
++ ln -s $(WHEREJOE)/joe $(WHEREJOE)/rjoe
++ ln -s $(WHEREJOE)/joe $(WHEREJOE)/jpico
++ install -s termidx $(WHEREJOE)
+ if [ ! -d $(WHERERC) ]; then mkdir $(WHERERC); chmod a+rx $(WHERERC); fi
+ rm -f $(WHERERC)/joerc $(WHERERC)/jmacsrc $(WHERERC)/jstarrc $(WHERERC)/jpicorc $(WHERERC)/rjoerc $(WHEREMAN)/joe.1
+- cp joerc $(WHERERC)
+- cp jmacsrc $(WHERERC)
+- cp jstarrc $(WHERERC)
+- cp rjoerc $(WHERERC)
+- cp jpicorc $(WHERERC)
+- cp joe.1 $(WHEREMAN)
+- chmod a+x $(WHEREJOE)/joe
+- chmod a+x $(WHEREJOE)/jmacs
+- chmod a+x $(WHEREJOE)/jstar
+- chmod a+x $(WHEREJOE)/rjoe
+- chmod a+x $(WHEREJOE)/jpico
+- chmod a+r $(WHERERC)/joerc
+- chmod a+r $(WHERERC)/jmacsrc
+- chmod a+r $(WHERERC)/jstarrc
+- chmod a+r $(WHERERC)/rjoerc
+- chmod a+r $(WHERERC)/jpicorc
+- chmod a+r $(WHEREMAN)/joe.1
+- chmod a+x $(WHEREJOE)/termidx
+- rm -f $(WHERERC)/termcap
+- cp termcap $(WHERERC)/termcap
+- chmod a+r $(WHERERC)/termcap
+- rm -f $(WHERERC)/terminfo
+- cp terminfo $(WHERERC)/terminfo
+- chmod a+r $(WHERERC)/terminfo
++ install -m 644 joerc $(WHERERC)
++ install -m 644 jmacsrc $(WHERERC)
++ install -m 644 jstarrc $(WHERERC)
++ install -m 644 rjoerc $(WHERERC)
++ install -m 644 jpicorc $(WHERERC)
++ install -m 644 joe.1 $(WHEREMAN)
++ #rm -f $(WHERERC)/termcap
++ #cp termcap $(WHERERC)/termcap
++ #chmod a+r $(WHERERC)/termcap
++ #rm -f $(WHERERC)/terminfo
++ #cp terminfo $(WHERERC)/terminfo
++ #chmod a+r $(WHERERC)/terminfo
+
+ # Cleanup proceedure
+
+ clean:
+ rm -f $(OBJS) termidx.o conf conf.o config.h
++
++
++
++
++
++
+--- rjoerc
++++ rjoerc 2000/03/02 13:15:55
+@@ -436,6 +436,8 @@
+ bof ^K u
+ bol .kh Goto beginning of line
+ bol ^A
++bol ^[ [ H
++bol ^[ [ 1 ~
+ center ^K A Center line
+ center ^K ^A
+ center ^K a
+@@ -458,6 +460,8 @@
+ eof ^K v
+ eol .kH Go to end of line
+ eol ^E
++eol ^[ [ F
++eol ^[ [ 4 ~
+ exsave ^K X Save and exit
+ exsave ^K ^X
+ exsave ^K x