diff options
Diffstat (limited to 'source/a/ncompress/ncompress.filenamelen.diff')
-rw-r--r-- | source/a/ncompress/ncompress.filenamelen.diff | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/source/a/ncompress/ncompress.filenamelen.diff b/source/a/ncompress/ncompress.filenamelen.diff deleted file mode 100644 index 67676c7a..00000000 --- a/source/a/ncompress/ncompress.filenamelen.diff +++ /dev/null @@ -1,98 +0,0 @@ ---- ncompress-4.2.4/compress42.c.filenamelen Wed Nov 21 12:19:38 2001 -+++ ncompress-4.2.4/compress42.c Wed Nov 21 12:20:03 2001 -@@ -140,6 +140,7 @@ - #include <sys/types.h> - #include <sys/stat.h> - #include <errno.h> -+#include <string.h> - - #ifdef DIRENT - # include <dirent.h> -@@ -213,7 +214,7 @@ - # define OBUFSIZ BUFSIZ /* Default output buffer size */ - #endif - --#define MAXPATHLEN 1024 /* MAXPATHLEN - maximum length of a pathname we allow */ -+#define MAXPATHLEN PATH_MAX /* MAXPATHLEN - maximum length of a pathname we allow */ - #define SIZE_INNER_LOOP 256 /* Size of the inter (fast) compress loop */ - - /* Defines for third byte of header */ -@@ -641,13 +642,11 @@ - } ; - #endif - --void main ARGS((int,char **)); - void Usage ARGS((void)); - void comprexx ARGS((char **)); - void compdir ARGS((char *)); - void compress ARGS((int,int)); - void decompress ARGS((int,int)); --char *rindex ARGS((char *,int)); - void read_error ARGS((void)); - void write_error ARGS((void)); - void abort_compress ARGS((void)); -@@ -694,13 +693,15 @@ - * deterministic, and can be done on the fly. Thus, the decompression - * procedure needs no input table, but tracks the way the table was built. - */ --void -+int - main(argc, argv) - REG1 int argc; - REG2 char *argv[]; - { - REG3 char **filelist; - REG4 char **fileptr; -+ int i; -+ - - if (fgnd_flag = (signal(SIGINT, SIG_IGN) != SIG_IGN)) - signal(SIGINT, (SIG_TYPE)abort_compress); -@@ -714,7 +715,14 @@ - nomagic = 1; /* Original didn't have a magic number */ - #endif - -- filelist = fileptr = (char **)malloc(argc*sizeof(char *)); -+ for(i=0;i<argc;i++){ -+ if(strlen(argv[i])>(MAXPATHLEN-1)){ -+ fprintf(stderr,"Filename too long\n"); -+ exit(1); -+ } -+ } -+ -+ filelist = fileptr = (char **)malloc(argc*sizeof(char *)); - *filelist = NULL; - - if((progname = rindex(argv[0], '/')) != 0) -@@ -853,8 +861,9 @@ - else - decompress(0, 1); - } -- -+ - exit((exit_code== -1) ? 1:exit_code); -+ return 0; - } - - void -@@ -1801,20 +1810,6 @@ - write_error(); - } - --char * --rindex(s, c) /* For those who don't have it in libc.a */ -- REG1 char *s; -- REG2 int c; -- { -- char *p; -- -- for (p = NULL; *s; s++) -- if (*s == (char)c) -- p = s; -- -- return(p); -- } -- - void - read_error() - { |