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
37c69a3a7a
commit
9d87eb9e22
1 changed files with 2 additions and 2 deletions
|
@ -30,7 +30,7 @@
|
||||||
* Dave Pare, 1986
|
* Dave Pare, 1986
|
||||||
* Ken Stevens, 1995
|
* Ken Stevens, 1995
|
||||||
* Steve McClure, 1998-2000
|
* Steve McClure, 1998-2000
|
||||||
* Markus Armbruster, 2004-2016
|
* Markus Armbruster, 2004-2020
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
@ -1052,7 +1052,7 @@ pln_damage(struct plnstr *pp, char type, char *noisy)
|
||||||
aim = 100 - aim;
|
aim = 100 - aim;
|
||||||
}
|
}
|
||||||
|
|
||||||
len = snprintf(buf, sizeof(buf), "%s", noisy);
|
len = noisy ? snprintf(buf, sizeof(buf), "%s", noisy) : 0;
|
||||||
while (i--) {
|
while (i--) {
|
||||||
if (noisy) {
|
if (noisy) {
|
||||||
if (len > 75) {
|
if (len > 75) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue