Ver Fonte

Backported zip/qpak dir fix from dev branch to stable-1.0.

Ryan C. Gordon há 15 anos atrás
pai
commit
205a7d3e63
2 ficheiros alterados com 8 adições e 2 exclusões
  1. 4 1
      archivers/qpak.c
  2. 4 1
      archivers/zip.c

+ 4 - 1
archivers/qpak.c

@@ -554,8 +554,11 @@ static QPAKentry *qpak_find_entry(QPAKinfo *info, const char *path, int *isDir)
 
 
             if (thispath[pathlen] == '\0') /* found entry? */
             if (thispath[pathlen] == '\0') /* found entry? */
                 return(&a[middle]);
                 return(&a[middle]);
+            /* adjust search params, try again. */
+            else if (thispath[pathlen] > '/')
+                hi = middle - 1;
             else
             else
-                hi = middle - 1;  /* adjust search params, try again. */
+                lo = middle + 1;
         } /* if */
         } /* if */
     } /* while */
     } /* while */
 
 

+ 4 - 1
archivers/zip.c

@@ -586,8 +586,11 @@ static ZIPentry *zip_find_entry(ZIPinfo *info, const char *path, int *isDir)
 
 
             if (thispath[pathlen] == '\0') /* found entry? */
             if (thispath[pathlen] == '\0') /* found entry? */
                 return(&a[middle]);
                 return(&a[middle]);
+            /* adjust search params, try again. */
+            else if (thispath[pathlen] > '/')
+                hi = middle - 1;
             else
             else
-                hi = middle - 1;  /* adjust search params, try again. */
+                lo = middle + 1;
         } /* if */
         } /* if */
     } /* while */
     } /* while */