From 117d3d834eb0d3a56badf44c8ab880387f06f96c Mon Sep 17 00:00:00 2001 From: Steve Murphy Date: Tue, 6 Nov 2007 19:40:33 +0000 Subject: Hoping to avoid a crash in OSX for a problem blitzrage found git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89051 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/ast_expr2f.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'main/ast_expr2f.c') diff --git a/main/ast_expr2f.c b/main/ast_expr2f.c index 243046558..c9ae8defd 100644 --- a/main/ast_expr2f.c +++ b/main/ast_expr2f.c @@ -3207,13 +3207,17 @@ int ast_expr(char *expr, char *buf, int length, struct ast_channel *chan) res_length = snprintf(buf, length, FP___PRINTF, io.val->u.i); return_value = (res_length <= length) ? res_length : length; } else { + if (io.val->u.s) #if defined(STANDALONE) || defined(LOW_MEMORY) || defined(STANDALONE_AEL) - strncpy(buf, io.val->u.s, length - 1); + strncpy(buf, io.val->u.s, length - 1); #else /* !STANDALONE && !LOW_MEMORY */ - ast_copy_string(buf, io.val->u.s, length); + ast_copy_string(buf, io.val->u.s, length); #endif /* STANDALONE || LOW_MEMORY */ + else + buf[0] = 0; return_value = strlen(buf); - free(io.val->u.s); + if (io.val->u.s) + free(io.val->u.s); } free(io.val); } -- cgit v1.2.3