Followup on RT3334 fix: make sure that a directory that's the empty
authorRichard Levitte <richard@levitte.org>
Thu, 14 Aug 2014 23:24:34 +0000 (01:24 +0200)
committerRichard Levitte <levitte@openssl.org>
Wed, 3 Sep 2014 19:57:44 +0000 (21:57 +0200)
string returns 0 with errno = ENOENT.

Reviewed-by: Andy Polyakov <appro@openssl.org>
crypto/LPdir_vms.c
crypto/LPdir_win.c

index 7613bd254e7cfb001339425bfd10fd7105ed4d8b..3582fa6f01c86eea5acffee53fa632dc4616bbe3 100644 (file)
@@ -1,4 +1,3 @@
-/* $LP: LPlib/source/LPdir_vms.c,v 1.20 2004/08/26 13:36:05 _cvs_levitte Exp $ */
 /*
  * Copyright (c) 2004, Richard Levitte <richard@levitte.org>
  * All rights reserved.
@@ -88,6 +87,12 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
       size_t filespeclen = strlen(directory);
       char *filespec = NULL;
 
+      if (filespeclen == 0)
+       {
+         errno = ENOENT;
+         return 0;
+       }
+
       /* MUST be a VMS directory specification!  Let's estimate if it is. */
       if (directory[filespeclen-1] != ']'
          && directory[filespeclen-1] != '>'
index 5cdcd001a71eacfaee7f09b89584f457ead08142..d5b5e2c900db9ea56522a75a49972213c01a741b 100644 (file)
@@ -66,6 +66,12 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
       char *extdirbuf = NULL;
       size_t dirlen = strlen (directory);
 
+      if (dirlen == 0)
+       {
+         errno = ENOENT;
+         return 0;
+       }
+
       *ctx = (LP_DIR_CTX *)malloc(sizeof(LP_DIR_CTX));
       if (*ctx == NULL)
        {