bomb launch interdiction: Fix crash on bombs missing target
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>
This commit is contained in:
parent
77d3da4f09
commit
e312e4f8d6
1 changed files with 2 additions and 2 deletions
|
@ -30,7 +30,7 @@
|
|||
* Dave Pare, 1986
|
||||
* Ken Stevens, 1995
|
||||
* Steve McClure, 1998-2000
|
||||
* Markus Armbruster, 2004-2016
|
||||
* Markus Armbruster, 2004-2020
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -1052,7 +1052,7 @@ pln_damage(struct plnstr *pp, char type, char *noisy)
|
|||
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) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue