plane damage() prints @noisy with snprintf() even when it's null. It
doesn't actually use the output then. Some systems (GNU, Windows)
deal gracefully with printing null strings, others crash. @noisy is
null when bombers or missiles miss and do collateral damage. Affects
bomb, launch, and interdiction missions. Broken in commit
820d755e5
"subs: Change pln_damage()'s parameter noisy to string prefix",
v4.3.33.
Fix by guarding the snprintf().
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
* Dave Pare, 1986
* Ken Stevens, 1995
* Steve McClure, 1998-2000
- * Markus Armbruster, 2004-2016
+ * Markus Armbruster, 2004-2020
*/
#include <config.h>
aim = 100 - aim;
}
- len = snprintf(buf, sizeof(buf), "%s", noisy);
+ len = noisy ? snprintf(buf, sizeof(buf), "%s", noisy) : 0;
while (i--) {
if (noisy) {
if (len > 75) {