From 766681f6664672b06a2007ffb3118e23cecc3eaf Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 15 May 2008 21:05:32 +0000 Subject: [PATCH] handle malloc failures. Found by Klockwork (www.klocwork.com) git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8421 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/switch.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/switch.c b/src/switch.c index 534f879126..373db0065b 100644 --- a/src/switch.c +++ b/src/switch.c @@ -404,6 +404,10 @@ int main(int argc, char *argv[]) x++; if (argv[x] && strlen(argv[x])) { SWITCH_GLOBAL_dirs.conf_dir = (char *) malloc(strlen(argv[x]) + 1); + if (!SWITCH_GLOBAL_dirs.conf_dir) { + fprintf(stderr, "Allocation error\n"); + return 255; + } strcpy(SWITCH_GLOBAL_dirs.conf_dir, argv[x]); alt_dirs++; } else { @@ -417,6 +421,10 @@ int main(int argc, char *argv[]) x++; if (argv[x] && strlen(argv[x])) { SWITCH_GLOBAL_dirs.log_dir = (char *) malloc(strlen(argv[x]) + 1); + if (!SWITCH_GLOBAL_dirs.log_dir) { + fprintf(stderr, "Allocation error\n"); + return 255; + } strcpy(SWITCH_GLOBAL_dirs.log_dir, argv[x]); alt_dirs++; } else { @@ -430,6 +438,10 @@ int main(int argc, char *argv[]) x++; if (argv[x] && strlen(argv[x])) { SWITCH_GLOBAL_dirs.db_dir = (char *) malloc(strlen(argv[x]) + 1); + if (!SWITCH_GLOBAL_dirs.db_dir) { + fprintf(stderr, "Allocation error\n"); + return 255; + } strcpy(SWITCH_GLOBAL_dirs.db_dir, argv[x]); alt_dirs++; } else { @@ -443,6 +455,10 @@ int main(int argc, char *argv[]) x++; if (argv[x] && strlen(argv[x])) { SWITCH_GLOBAL_dirs.script_dir = (char *) malloc(strlen(argv[x]) + 1); + if (!SWITCH_GLOBAL_dirs.script_dir) { + fprintf(stderr, "Allocation error\n"); + return 255; + } strcpy(SWITCH_GLOBAL_dirs.script_dir, argv[x]); } else { fprintf(stderr, "When using -scripts you must specify a scripts directory\n");