From 5f648cf4bb02c92bbb75babf7b6aaa02e25a524f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Thu, 17 Feb 2000 19:38:40 -0800
Subject: [PATCH] ok, it should be fixed now...

Rev: src/modules/Perl/perlmod.c:1.11
---
 src/modules/Perl/perlmod.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/modules/Perl/perlmod.c b/src/modules/Perl/perlmod.c
index cc180c37a7..6559f48c4f 100644
--- a/src/modules/Perl/perlmod.c
+++ b/src/modules/Perl/perlmod.c
@@ -171,7 +171,7 @@ static void perlmod_create(INT32 args)
       env_block_size+=k->ind.u.string->len+k->val.u.string->len+2;
 
     THIS->env_block=xalloc(env_block_size);
-    THIS->env=(char **)xalloc(m_sizeof(env_mapping)+1);
+    THIS->env=(char **)xalloc(sizeof(char *)*(m_sizeof(env_mapping)+1));
 
     env_blockp=THIS->env_block;
     d=0;
@@ -205,7 +205,7 @@ static void perlmod_create(INT32 args)
       env_block_size+=strlen(environ[d])+1;
 
     THIS->env_block=xalloc(env_block_size);
-    THIS->env=(char **)xalloc(d+1);
+    THIS->env=(char **)xalloc(sizeof(char *)*(d+1));
 
     env_blockp=THIS->env_block;
 
@@ -216,6 +216,12 @@ static void perlmod_create(INT32 args)
       MEMCPY(env_blockp,environ[d],l+1);
       env_blockp+=l+1;
     }
+
+#ifdef PIKE_DEBUG
+    if(env_blockp - THIS->env_block > env_block_size)
+      fatal("Arglebargle glop-glyf.\n");
+#endif
+
     THIS->env[d]=0;
   }
   
-- 
GitLab