From c43a0d1c08263915bcac804cc40b350d03a1b68f Mon Sep 17 00:00:00 2001
From: "Craig A. Berry" <craigberry@mac.com>
Date: Mon, 10 Dec 2007 05:45:22 +0000
Subject: Fix uninitialized pointer bug in VMS version of readdir() when case
 preservation feature is enabled.

p4raw-id: //depot/perl@32603
---
 vms/vms.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

(limited to 'vms')

diff --git a/vms/vms.c b/vms/vms.c
index d19ffabbc0..a579d37ff4 100644
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -9602,16 +9602,13 @@ Perl_readdir(pTHX_ DIR *dd)
     }
     dd->count++;
     /* Force the buffer to end with a NUL, and downcase name to match C convention. */
+    buff[res.dsc$w_length] = '\0';
+    p = buff + res.dsc$w_length;
+    while (--p >= buff) if (!isspace(*p)) break;  
+    *p = '\0';
     if (!decc_efs_case_preserve) {
-      buff[VMS_MAXRSS - 1] = '\0';
       for (p = buff; *p; p++) *p = _tolower(*p);
     }
-    else {
-      /* we don't want to force to lowercase, just null terminate */
-      buff[res.dsc$w_length] = '\0';
-    }
-    while (--p >= buff) if (!isspace(*p)) break;  /* Do we really need this? */
-    *p = '\0';
 
     /* Skip any directory component and just copy the name. */
     sts = vms_split_path
-- 
cgit v1.2.1