From 0af962262ffc73ddad7ffcdf38e62bdb6f080ec2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Sun, 7 Feb 1999 17:29:04 +0100
Subject: [PATCH] f_get_dir() no longer uses alloca().

Rev: src/modules/files/efuns.c:1.63
---
 src/modules/files/efuns.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/modules/files/efuns.c b/src/modules/files/efuns.c
index f63cd0daa2..3dab6e4a73 100644
--- a/src/modules/files/efuns.c
+++ b/src/modules/files/efuns.c
@@ -22,7 +22,7 @@
 #include "file_machine.h"
 #include "file.h"
 
-RCSID("$Id: efuns.c,v 1.62 1999/01/01 01:03:33 hubbe Exp $");
+RCSID("$Id: efuns.c,v 1.63 1999/02/07 16:29:04 grubba Exp $");
 
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
@@ -517,14 +517,14 @@ void f_get_dir(INT32 args)
 
     if (!(tmp =
 #if defined(HAVE_SOLARIS_READDIR_R) || defined(_PC_NAME_MAX)
-	  alloca(sizeof(struct dirent) + 
+	  malloc(sizeof(struct dirent) + 
 		 ((pathconf(path, _PC_NAME_MAX) < 1024)?1024:
 		  pathconf(path, _PC_NAME_MAX)) + 1)
 #else
 #ifndef NAME_MAX
 #define NAME_MAX 1024
 #endif
-	  alloca(sizeof(struct dirent) + NAME_MAX+ 1024 + 1)
+	  malloc(sizeof(struct dirent) + NAME_MAX+ 1024 + 1)
 #endif /* HAVE_SOLARIS_READDIR_R */
       )) {
       closedir(dir);
@@ -638,6 +638,7 @@ void f_get_dir(INT32 args)
 	break;
     }
     THREADS_ALLOW();
+    free(tmp);
     closedir(dir);
     THREADS_DISALLOW();
     a=aggregate_array(sp-save_sp);
-- 
GitLab