1From 1407fcad6f1dac0a4efe8041660bf6139c1cd16a Mon Sep 17 00:00:00 2001 2From: Robert Yang <liezhi.yang@windriver.com> 3Date: Tue, 24 Sep 2019 13:40:10 +0800 4Subject: [PATCH] exp_main_sub.c: Use PATH_MAX for path 5 6If expect was built from a long path whose length > 200, then it couldn't run: 7$ expect -c 'puts yes' 8*** buffer overflow detected ***: expect terminated 9Aborted (core dumped) 10 11Use PATH_MAX to fix the problem. 12 13Upstream-Status: Pending [Upstream seems dead] 14 15Signed-off-by: Robert Yang <liezhi.yang@windriver.com> 16--- 17 exp_main_sub.c | 8 ++++++-- 18 1 file changed, 6 insertions(+), 2 deletions(-) 19 20diff --git a/exp_main_sub.c b/exp_main_sub.c 21index fcfaa6e..bf6c4be 100644 22--- a/exp_main_sub.c 23+++ b/exp_main_sub.c 24@@ -48,6 +48,10 @@ char exp_version[] = PACKAGE_VERSION; 25 #define NEED_TCL_MAJOR 7 26 #define NEED_TCL_MINOR 5 27 28+#ifndef PATH_MAX 29+#define PATH_MAX 4096 30+#endif 31+ 32 char *exp_argv0 = "this program"; /* default program name */ 33 void (*exp_app_exit)() = 0; 34 void (*exp_event_exit)() = 0; 35@@ -901,7 +905,7 @@ int sys_rc; 36 int rc; 37 38 if (sys_rc) { 39- char file[200]; 40+ char file[PATH_MAX]; 41 int fd; 42 43 sprintf(file,"%s/expect.rc",SCRIPTDIR); 44@@ -917,7 +921,7 @@ int sys_rc; 45 } 46 } 47 if (my_rc) { 48- char file[200]; 49+ char file[PATH_MAX]; 50 char *home; 51 int fd; 52 char *getenv(); 53-- 542.7.4 55 56