summaryrefslogtreecommitdiff
path: root/vms
diff options
context:
space:
mode:
authorCraig A. Berry <craigberry@mac.com>2000-08-24 14:13:11 -0500
committerJarkko Hietaniemi <jhi@iki.fi>2000-08-25 16:46:32 +0000
commit32f78baf72351c617b69c24c7d8f114f5fd2d837 (patch)
treeebfa35c9bcb8d3da15508eab159c5692d19d48bc /vms
parent56aeb0aee1080c061a5116216dee8d43bb300988 (diff)
downloadperl-32f78baf72351c617b69c24c7d8f114f5fd2d837.tar.gz
prevent rare Perl hang on VMS
Message-Id: <4.3.2.7.2.20000824174417.02479ef8@exchi01> p4raw-id: //depot/perl@6809
Diffstat (limited to 'vms')
-rw-r--r--vms/vms.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/vms/vms.c b/vms/vms.c
index 40348e0056..ec0b26c716 100644
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -2900,7 +2900,16 @@ vms_image_init(int *argcp, char ***argvp)
* buffer much larger than $GETJPI wants (rsz is size in bytes that
* were needed to hold all identifiers at time of last call; we'll
* allocate that many unsigned long ints), and go back and get 'em.
+ * If it gave us less than it wanted to despite ample buffer space,
+ * something's broken. Is your system missing a system identifier?
*/
+ if (rsz <= jpilist[1].buflen) {
+ /* Perl_croak accvios when used this early in startup. */
+ fprintf(stderr, "vms_image_init: $getjpiw refuses to store RIGHTSLIST of %u bytes in buffer of %u bytes.\n%s",
+ rsz, (unsigned long) jpilist[1].buflen,
+ "Check your rights database for corruption.\n");
+ exit(SS$_ABORT);
+ }
if (jpilist[1].bufadr != rlst) Safefree(jpilist[1].bufadr);
jpilist[1].bufadr = New(1320,mask,rsz,unsigned long int);
jpilist[1].buflen = rsz * sizeof(unsigned long int);