*** extract.orig	Sun Jan 14 00:40:20 2001
--- extract.c	Mon Jul  9 14:45:42 2001
***************
*** 154,159 ****
--- 154,161 ----
  #ifndef WINDLL
     static ZCONST char Far ReplaceQuery[] =
       "replace %s? [y]es, [n]o, [A]ll, [N]one, [r]ename: ";
+    static ZCONST char Far TraversalWarning[] = 
+      "%s skipped because of directory traversal\n";
     static ZCONST char Far AssumeNone[] = " NULL\n(assuming [N]one)\n";
     static ZCONST char Far NewNameQuery[] = "new name: ";
     static ZCONST char Far InvalidResponse[] = "error:  invalid response [%c]\n";
***************
*** 877,882 ****
--- 879,893 ----
                      } /* end switch (*answerbuf) */
  #endif /* ?WINDLL */
                  } /* end if (query) */
+ 		if(*__G__ G.filename=='/' || !strncmp(__G__ G.filename, "../", 3)
+ 		    || strstr(__G__ G.filename,"/../")){
+                         skip_entry = SKIP_Y_EXISTING;
+ #ifndef WINDLL
+                     Info(slide, 0x81, ((char *)slide,
+                       LoadFarString(TraversalWarning),
+                       FnFilter1(G.filename)));
+ #endif
+ 		}
                  if (skip_entry != SKIP_NO) {
  #ifdef WINDLL
                      if (skip_entry == SKIP_Y_EXISTING) {
