add sanity checks when saving/restoring games (PR#6138 by Joseph Myers <jsm28@cam.ac.uk>)
This commit is contained in:
parent
3d10f9ca2b
commit
ade2d3629c
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: save.c,v 1.7 1997/10/12 02:06:15 lukem Exp $ */
|
||||
/* $NetBSD: save.c,v 1.8 1998/09/13 15:24:41 hubertf Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1983, 1993
|
||||
|
@ -38,7 +38,7 @@
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)save.c 8.2 (Berkeley) 4/28/95";
|
||||
#else
|
||||
__RCSID("$NetBSD: save.c,v 1.7 1997/10/12 02:06:15 lukem Exp $");
|
||||
__RCSID("$NetBSD: save.c,v 1.8 1998/09/13 15:24:41 hubertf Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -57,7 +57,7 @@ restore()
|
|||
strcpy(home1, home);
|
||||
strcat(home1, "/Bstar");
|
||||
if ((fp = fopen(home1, "r")) == 0) {
|
||||
warn("fopen %s", home1);
|
||||
err(1, "fopen %s", home1);
|
||||
return;
|
||||
}
|
||||
fread(&WEIGHT, sizeof WEIGHT, 1, fp);
|
||||
|
@ -94,7 +94,9 @@ restore()
|
|||
fread(&loved, sizeof loved, 1, fp);
|
||||
fread(&pleasure, sizeof pleasure, 1, fp);
|
||||
fread(&power, sizeof power, 1, fp);
|
||||
fread(&ego, sizeof ego, 1, fp);
|
||||
if (fread(&ego, sizeof ego, 1, fp) < 1)
|
||||
errx(1, "save file %s too short", home1);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -149,4 +151,8 @@ save()
|
|||
fwrite(&pleasure, sizeof pleasure, 1, fp);
|
||||
fwrite(&power, sizeof power, 1, fp);
|
||||
fwrite(&ego, sizeof ego, 1, fp);
|
||||
fflush(fp);
|
||||
if (ferror(fp))
|
||||
warn("fwrite %s", home1);
|
||||
fclose(fp);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue