[svn-commits] murf: trunk r89051 - in /trunk/main: ast_expr2.fl ast_expr2f.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Nov 6 13:40:33 CST 2007


Author: murf
Date: Tue Nov  6 13:40:33 2007
New Revision: 89051

URL: http://svn.digium.com/view/asterisk?view=rev&rev=89051
Log:
Hoping to avoid a crash in OSX for a problem blitzrage found

Modified:
    trunk/main/ast_expr2.fl
    trunk/main/ast_expr2f.c

Modified: trunk/main/ast_expr2.fl
URL: http://svn.digium.com/view/asterisk/trunk/main/ast_expr2.fl?view=diff&rev=89051&r1=89050&r2=89051
==============================================================================
--- trunk/main/ast_expr2.fl (original)
+++ trunk/main/ast_expr2.fl Tue Nov  6 13:40:33 2007
@@ -264,13 +264,17 @@
 			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);
 	}

Modified: trunk/main/ast_expr2f.c
URL: http://svn.digium.com/view/asterisk/trunk/main/ast_expr2f.c?view=diff&rev=89051&r1=89050&r2=89051
==============================================================================
--- trunk/main/ast_expr2f.c (original)
+++ trunk/main/ast_expr2f.c Tue Nov  6 13:40:33 2007
@@ -3207,13 +3207,17 @@
 			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);
 	}




More information about the svn-commits mailing list