Hello, I'm doing an NMU of grande to fix #350290; diff attached.
Thanks, Matej
diff -u grande-0.6/debian/changelog grande-0.6/debian/changelog --- grande-0.6/debian/changelog +++ grande-0.6/debian/changelog @@ -1,3 +1,10 @@ +grande (0.6-7.1) unstable; urgency=medium + + * NMU. + * src/load.c, src/ranking.c: Really fix scanf formats. Closes: #350290. + + -- Matej Vela <[EMAIL PROTECTED]> Mon, 20 Feb 2006 15:13:44 +0100 + grande (0.6-7) unstable; urgency=low * debian/control: set policy to 3.6.2.1. diff -u grande-0.6/src/load.c grande-0.6/src/load.c --- grande-0.6/src/load.c +++ grande-0.6/src/load.c @@ -232,19 +232,18 @@ Root->StageMax = 0; Root->EnemyCnt = 0; while(fgets(buff, 255, fp)) { - int d1, d2, d3, d4; if (buff[0] == ';' || buff[0] == '\n') continue; if (!Root->StageMax) StageDatas = (StageData *)KXL_Malloc(sizeof(StageData)); else StageDatas = (StageData *)KXL_Realloc(StageDatas, sizeof(StageData) * (Root->StageMax + 1)); - sscanf(buff,"%d %d %d %d %s %s", d1, d2, d3, d4, + sscanf(buff,"%"SCNu16" %"SCNu8" %"SCNu8" %"SCNu16" %s %s", + &(StageDatas[Root->StageMax].Time), + &(StageDatas[Root->StageMax].CreateNo), + &(StageDatas[Root->StageMax].Max), + &(StageDatas[Root->StageMax].Step), &(StageDatas[Root->StageMax].X[0]), &(StageDatas[Root->StageMax].Y[0])); - StageDatas[Root->StageMax].Time = d1; - StageDatas[Root->StageMax].CreateNo = d2; - StageDatas[Root->StageMax].Max = d3; - StageDatas[Root->StageMax].Step = d4; StageDatas[Root->StageMax].Flag = False; StageDatas[Root->StageMax ++].StepTime = 0; } diff -u grande-0.6/src/ranking.c grande-0.6/src/ranking.c --- grande-0.6/src/ranking.c +++ grande-0.6/src/ranking.c @@ -42,17 +42,15 @@ void ReadScore(void) { FILE *fp; - unsigned int d1, d2; Uint16 i; if ((fp = fopen(SCORE_PATH "/grande.scores", "r"))) { - fscanf(fp, "%d", &d1); - Root->HiScore = d1; - for (i = 0; i < 5; i ++) { - fscanf(fp, "%d %d %s", &d1, &d2, Ranking[i].Name); - Ranking[i].Score = d1; - Ranking[i].Stage = d2; - } + fscanf(fp, "%"SCNu32, &(Root->HiScore)); + for (i = 0; i < 5; i ++) + fscanf(fp, "%"SCNu32" %"SCNu8" %s", + &(Ranking[i].Score), + &(Ranking[i].Stage), + Ranking[i].Name); fclose(fp); } else { Root->HiScore = 10000; diff -u grande-0.6/src/grande.h grande-0.6/src/grande.h --- grande-0.6/src/grande.h +++ grande-0.6/src/grande.h @@ -10,6 +10,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <inttypes.h> #include <sys/types.h> #include <unistd.h> #include <KXL.h>