[openssl-commits] [openssl] master update

Richard Levitte levitte at openssl.org
Wed Feb 22 17:37:19 UTC 2017


The branch master has been updated
       via  5c80e2af3a7d8aa5129a1668c286c1464983e1ac (commit)
      from  d8eaaf15356e1559f0f669b430b0d22b3514f8f0 (commit)


- Log -----------------------------------------------------------------
commit 5c80e2af3a7d8aa5129a1668c286c1464983e1ac
Author: Richard Levitte <levitte at openssl.org>
Date:   Wed Feb 22 16:48:55 2017 +0100

    Make "openssl rehash" work on VMS 8.3 and up
    
    A spelling error prevented it from building correctly.
    Furthermore, we need to be more careful when to add a / at the end
    of the dirname and when not.
    
    Reviewed-by: Rich Salz <rsalz at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/2706)

-----------------------------------------------------------------------

Summary of changes:
 apps/rehash.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/apps/rehash.c b/apps/rehash.c
index 281e6cd..7754112 100644
--- a/apps/rehash.c
+++ b/apps/rehash.c
@@ -16,7 +16,7 @@
 #include "apps.h"
 
 #if defined(OPENSSL_SYS_UNIX) || defined(__APPLE__) || \
-    (defined(__VMS) && defined(__DECC) && __CTRL_VER >= 80300000)
+    (defined(__VMS) && defined(__DECC) && __CRTL_VER >= 80300000)
 # include <unistd.h>
 # include <stdio.h>
 # include <limits.h>
@@ -267,6 +267,20 @@ static void str_free(char *s)
     OPENSSL_free(s);
 }
 
+static int ends_with_dirsep(const char *path)
+{
+    if (*path != '\0')
+        path += strlen(path) - 1;
+# ifdef __VMS
+    if (*path == ']' || *path == '>' || *path == ':')
+        return 1;
+# elif _WIN32
+    if (*path == '\\')
+        return 1;
+# endif
+    return *path == '/';
+}
+
 /*
  * Process a directory; return number of errors found.
  */
@@ -289,7 +303,7 @@ static int do_dir(const char *dirname, enum Hash h)
         return 1;
     }
     buflen = strlen(dirname);
-    pathsep = (buflen && dirname[buflen - 1] == '/') ? "" : "/";
+    pathsep = (buflen && !ends_with_dirsep(dirname)) ? "/": "";
     buflen += NAME_MAX + 1 + 1;
     buf = app_malloc(buflen, "filename buffer");
 


More information about the openssl-commits mailing list