Преглед изворни кода

Special-case optimization in __PHYSFS_verifySecurity().

Ryan C. Gordon пре 23 година
родитељ
комит
2e0c0faa1d
1 измењених фајлова са 4 додато и 3 уклоњено
  1. 4 3
      physfs.c

+ 4 - 3
physfs.c

@@ -1196,7 +1196,6 @@ char * __PHYSFS_convertToDependent(const char *prepend,
 int __PHYSFS_verifySecurity(DirHandle *h, const char *fname)
 {
     int retval = 1;
-    int fileExists;
     char *start;
     char *end;
     char *str;
@@ -1224,14 +1223,16 @@ int __PHYSFS_verifySecurity(DirHandle *h, const char *fname)
 
         if (!allowSymLinks)
         {
-            if (h->funcs->isSymLink(h, str, &fileExists))
+            if (h->funcs->isSymLink(h, str, &retval))
             {
                 __PHYSFS_setError(ERR_SYMLINK_DISALLOWED);
                 retval = 0;
                 break;
             } /* if */
 
-            /* !!! FIXME: Abort early here if !fileExists? */
+            /* break out early if path element is missing. */
+            if (!retval)
+                break;
         } /* if */
 
         if (end == NULL)