Imported from LPlib, making sure the entry name (at least on Unix) is
authorRichard Levitte <levitte@openssl.org>
Mon, 19 Jul 2004 16:36:28 +0000 (16:36 +0000)
committerRichard Levitte <levitte@openssl.org>
Mon, 19 Jul 2004 16:36:28 +0000 (16:36 +0000)
NUL-teminated at all times, and that we don't make unneeded calls to
free().

crypto/LPdir_unix.c
crypto/LPdir_win.c

index 83686e8..7298a23 100644 (file)
@@ -1,4 +1,4 @@
-/* $LP: LPlib/source/LPdir_unix.c,v 1.6 2004/06/14 10:08:43 _cvs_levitte Exp $ */
+/* $LP: LPlib/source/LPdir_unix.c,v 1.8 2004/07/19 16:34:39 _cvs_levitte Exp $ */
 /*
  * Copyright (c) 2004, Richard Levitte <richard@levitte.org>
  * All rights reserved.
@@ -79,7 +79,8 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
       return 0;
     }
 
-  strncpy((*ctx)->entry_name, direntry->d_name, sizeof((*ctx)->entry_name));
+  strncpy((*ctx)->entry_name, direntry->d_name, sizeof((*ctx)->entry_name) - 1);
+  (*ctx)->entry_name[sizeof((*ctx)->entry_name) - 1] = '\0';
   return (*ctx)->entry_name;
 }
 
index fdd955f..1a2663c 100644 (file)
@@ -1,4 +1,4 @@
-/* $LP: LPlib/source/LPdir_win.c,v 1.1 2004/06/14 10:07:56 _cvs_levitte Exp $ */
+/* $LP: LPlib/source/LPdir_win.c,v 1.3 2004/07/19 16:34:54 _cvs_levitte Exp $ */
 /*
  * Copyright (c) 2004, Richard Levitte <richard@levitte.org>
  * All rights reserved.
@@ -53,7 +53,6 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
       if (*ctx == NULL)
        {
          errno = ENOMEM;
-         free(*ctx);
          return 0;
        }
       memset(*ctx, '\0', sizeof(LP_DIR_CTX));
@@ -68,7 +67,6 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
          {
            errno = ENOMEM;
            free(*ctx);
-           free(wdir);
            return 0;
          }