changeset 1172:f69f4d25fb20

Don't crash if a NULL is passed for a "%s" parameter to SDL_SetError(), instead replace it with the string "(null)", like glibc's printf() would do.
author Ryan C. Gordon <icculus@icculus.org>
date Thu, 17 Nov 2005 03:04:47 +0000
parents f84c6f1397cd
children e9cf8c1b4590
files src/SDL_error.c
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/SDL_error.c	Thu Nov 17 02:35:15 2005 +0000
+++ b/src/SDL_error.c	Thu Nov 17 03:04:47 2005 +0000
@@ -108,8 +108,10 @@
 			    case 's':
 				{
 				  int index = error->argc;
-				  strncpy((char *)error->args[index].buf,
-					va_arg(ap, char *), ERR_MAX_STRLEN);
+				  char *str = va_arg(ap, char *);
+				  if (str == NULL)
+				      str = "(null)";
+				  strncpy((char *)error->args[index].buf, str, ERR_MAX_STRLEN);
 				  error->args[index].buf[ERR_MAX_STRLEN-1] = 0;
 				  error->argc++;
 				}