From a3355d9fe2802e19d867043397b371ade29134be Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Sat, 12 Jun 2004 14:34:15 +0000
Subject: [PATCH] Add "LOW_MEMORY" option and increase some buffer sizes (bug
 #1827)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3193 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 Makefile | 4 ++++
 config.c | 4 ++--
 pbx.c    | 9 +++++++--
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/Makefile b/Makefile
index 19f28da544..0e654157d8 100755
--- a/Makefile
+++ b/Makefile
@@ -56,6 +56,10 @@ DEBUG=-g #-pg
 # will be received more reliably
 #OPTIONS += -DRADIO_RELAX
 
+# If you don't have a lot of memory (e.g. embedded Asterisk), uncomment the
+# following to reduce the size of certain static buffers
+#OPTIONS += -DLOW_MEMORY
+
 # Optional debugging parameters
 DEBUG_THREADS = #-DDEBUG_THREADS #-DDO_CRASH 
 
diff --git a/config.c b/config.c
index cb4ae06ab6..865fb60968 100755
--- a/config.c
+++ b/config.c
@@ -529,7 +529,7 @@ static int cfg_process(struct ast_config *tmp, struct ast_category **_tmpc, stru
 					
 					if((c = strchr(cur,':'))) {
 						*c = '\0';
-						*c++;
+						c++;
 						arg = c;
 					}
 					
@@ -728,7 +728,7 @@ static struct ast_config *__ast_load(char *configfile, struct ast_config *tmp, s
 )
 {
 	char fn[256];
-	char buf[512];
+	char buf[8192];
 	FILE *f;
 	int lineno=0;
 	int master=0;
diff --git a/pbx.c b/pbx.c
index 02c006b69d..2c79751bb7 100755
--- a/pbx.c
+++ b/pbx.c
@@ -49,6 +49,11 @@
  *
  */
 
+#ifdef LOW_MEMORY
+#define EXT_DATA_SIZE 256
+#else
+#define EXT_DATA_SIZE 8192
+#endif
 
 struct ast_context;
 
@@ -1159,11 +1164,11 @@ static int pbx_extension_helper(struct ast_channel *c, char *context, char *exte
 	int res;
 	int status = 0;
 	char *incstack[AST_PBX_MAX_STACK];
-	char passdata[256];
+	char passdata[EXT_DATA_SIZE];
 	int stacklen = 0;
 	char tmp[80];
 	char tmp2[80];
-	char tmp3[256];
+	char tmp3[EXT_DATA_SIZE];
 	if (ast_mutex_lock(&conlock)) {
 		ast_log(LOG_WARNING, "Unable to obtain lock\n");
 		if ((action == HELPER_EXISTS) || (action == HELPER_CANMATCH) || (action == HELPER_MATCHMORE))
-- 
GitLab