outieee: fix segfault on empty input

Fix the IEEE backend crashing if the input file is empty.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
H. Peter Anvin 2022-12-07 10:23:46 -08:00
parent 55dc058356
commit c8af731120

View file

@ -1,6 +1,6 @@
/* ----------------------------------------------------------------------- *
*
* Copyright 1996-2016 The NASM Authors - All Rights Reserved
* Copyright 1996-2022 The NASM Authors - All Rights Reserved
* See the file AUTHORS included with the NASM distribution for
* the specific copyright holders.
*
@ -936,7 +936,7 @@ static void ieee_write_file(void)
* Write the section headers
*/
seg = seghead;
if (!debuginfo && !strcmp(seg->name, "??LINE"))
if (!debuginfo && seg && !strcmp(seg->name, "??LINE"))
seg = seg->next;
while (seg) {
char buf[256];
@ -971,7 +971,7 @@ static void ieee_write_file(void)
/*
* write the start address if there is one
*/
if (ieee_entry_seg) {
if (ieee_entry_seg && seghead) {
for (seg = seghead; seg; seg = seg->next)
if (seg->index == ieee_entry_seg)
break;
@ -1084,7 +1084,7 @@ static void ieee_write_file(void)
* put out section data;
*/
seg = seghead;
if (!debuginfo && !strcmp(seg->name, "??LINE"))
if (!debuginfo && seg && !strcmp(seg->name, "??LINE"))
seg = seg->next;
while (seg) {
if (seg->currentpos) {