commit a22686dfd2158200e4615d5c630c23567246220b from: Markus Uhlin date: Sat Aug 3 19:58:53 2024 UTC Return value checking commit - bf864d0b27a218c34d92b54a63a9bd8dbffca8f4 commit + a22686dfd2158200e4615d5c630c23567246220b blob - 524bd5a71770183a51ad01c07bb0b243c5e6cc77 blob + d3fff963db1a246c3cc83209761fb472f00e1764 --- FICS/gamedb.c +++ FICS/gamedb.c @@ -1233,21 +1233,31 @@ ReadV1Moves(game *g, FILE *fp) 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);