summaryrefslogtreecommitdiff
path: root/doio.c
diff options
context:
space:
mode:
authorCraig A. Berry <craigberry@mac.com>2003-12-06 06:44:40 -0600
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2003-12-06 20:01:24 +0000
commit3ce6b0cbdd28668e4405f44a007bcb02edaf855d (patch)
tree2fb5ab84bfcca01ad1551d51f1f011515e043426 /doio.c
parent085bcbb1d33da8a158e1316d85fae9d242baf2d0 (diff)
downloadperl-3ce6b0cbdd28668e4405f44a007bcb02edaf855d.tar.gz
casting bug in VMS part of Perl_start_glob
From: "Craig A. Berry" <craigberry@mac.com> Message-ID: <3FD22398.1060506@mac.com> p4raw-id: //depot/perl@21858
Diffstat (limited to 'doio.c')
-rw-r--r--doio.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/doio.c b/doio.c
index 5ba40b9be6..af4d17d487 100644
--- a/doio.c
+++ b/doio.c
@@ -2290,8 +2290,9 @@ Perl_start_glob (pTHX_ SV *tmpglob, IO *io)
if (*cp == '?') *cp = '%'; /* VMS style single-char wildcard */
while (ok && ((sts = lib$find_file(&wilddsc,&rsdsc,&cxt,
&dfltdsc,NULL,NULL,NULL))&1)) {
- end = rstr + (unsigned long int) *rslt;
- if (!hasver) while (*end != ';') end--;
+ /* with varying string, 1st word of buffer contains result length */
+ end = rstr + *((unsigned short int*)rslt);
+ if (!hasver) while (*end != ';' && end > rstr) end--;
*(end++) = '\n'; *end = '\0';
for (cp = rstr; *cp; cp++) *cp = _tolower(*cp);
if (hasdir) {