commit - bf864d0b27a218c34d92b54a63a9bd8dbffca8f4
commit + a22686dfd2158200e4615d5c630c23567246220b
blob - 524bd5a71770183a51ad01c07bb0b243c5e6cc77
blob + d3fff963db1a246c3cc83209761fb472f00e1764
--- FICS/gamedb.c
+++ FICS/gamedb.c
PRIVATE int
ReadV1GameFmt(game *g, FILE *fp, const char *file, int version)
{
- long int lval;
+ int ret[3];
+ long int lval;
- fscanf(fp, "%s %s", g->white_name, g->black_name);
- fscanf(fp, "%d %d", &g->white_rating, &g->black_rating);
- fscanf(fp, "%d %d %d %d",
+ ret[0] = fscanf(fp, "%s %s", g->white_name, g->black_name);
+ ret[1] = fscanf(fp, "%d %d", &g->white_rating, &g->black_rating);
+ ret[2] = fscanf(fp, "%d %d %d %d",
&g->wInitTime,
&g->wIncrement,
&g->bInitTime,
&g->bIncrement);
+ if (ret[0] != 2 ||
+ ret[1] != 2 ||
+ ret[2] != 4) {
+ warnx("%s: fscanf error: %s", __func__, file);
+ return -1;
+ }
if (version < 3 && !g->bInitTime)
g->bInitTime = g->wInitTime;
- fscanf(fp, "%ld", &lval);
- g->timeOfStart = lval;
+ if (fscanf(fp, "%ld", &lval) != 1) {
+ warnx("%s: %s: failed to get time of start", __func__, file);
+ return -1;
+ } else
+ g->timeOfStart = lval;
fscanf(fp, "%d %d", &g->wTime, &g->bTime);