ISO C states that standard library functions should not be called with NULL arguments, unless stated otherwise. 'sprintf' does not state otherwise, and it doesn't hurt to be on the safe side.
@@ -1271,6 +1271,8 @@ static int str_format (lua_State *L) {
}
case 'p': {
const void *p = lua_topointer(L, arg);
+ if (p == NULL)
+ p = "(null)"; /* NULL not a valid parameter in ISO C 'printf' */
nb = l_sprintf(buff, maxitem, form, p);
break;