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.
--- 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++;
}