summaryrefslogtreecommitdiff
path: root/vms/vms.c
diff options
context:
space:
mode:
Diffstat (limited to 'vms/vms.c')
-rw-r--r--vms/vms.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/vms/vms.c b/vms/vms.c
index ba4fada81e..7327b75b6f 100644
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -616,6 +616,13 @@ vmssetenv(char *lnm, char *eqv, struct dsc$descriptor_s **tabvec)
}
else {
if (!*eqv) eqvdsc.dsc$w_length = 1;
+ if (eqvdsc.dsc$w_length > LNM$C_NAMLENGTH) {
+ eqvdsc.dsc$w_length = LNM$C_NAMLENGTH;
+ if (ckWARN(WARN_MISC)) {
+ Perl_warner(aTHX_ WARN_MISC,"Value of logical \"%s\" too long. "
+ "Truncating to %i bytes",lnm, LNM$C_NAMLENGTH);
+ }
+ }
retsts = lib$set_logical(&lnmdsc,&eqvdsc,tabvec[0],0,0);
}
}