Fix empdump to check for truncation failure
xubody() neglected to check ef_truncate()'s return value. Two failure modes: invalid arguments, and ftruncate() failure. The former shouldn't happen, and the latter can happen only for file-backed tables, hence only in empdump -i.
This commit is contained in:
parent
5cedc533f8
commit
7e95b52bce
1 changed files with 4 additions and 3 deletions
|
@ -996,9 +996,10 @@ xubody(FILE *fp)
|
|||
maxid = ep->fids;
|
||||
if (maxid < ep->fids) {
|
||||
if (EF_IS_GAME_STATE(cur_type)
|
||||
|| (cur_type >= EF_SHIP_CHR && cur_type <= EF_NUKE_CHR))
|
||||
ef_truncate(cur_type, maxid);
|
||||
else
|
||||
|| (cur_type >= EF_SHIP_CHR && cur_type <= EF_NUKE_CHR)) {
|
||||
if (!ef_truncate(cur_type, maxid))
|
||||
return -1;
|
||||
} else
|
||||
return gripe("Table %s requires %d rows, got %d",
|
||||
ef_nameof(cur_type), ep->fids, maxid);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue