summaryrefslogtreecommitdiff
path: root/lib-src/update-game-score.c
diff options
context:
space:
mode:
authorColin Walters <walters@gnu.org>2002-04-05 09:18:57 +0000
committerColin Walters <walters@gnu.org>2002-04-05 09:18:57 +0000
commit5ac23caaddfccc82f0434d4dc12473e400021ab9 (patch)
treefb127f049df8864da6b021b1b53ad281b59c3c2f /lib-src/update-game-score.c
parenta60c97d86222e626ca9ca8b4e61294b45d7ff9a7 (diff)
downloademacs-5ac23caaddfccc82f0434d4dc12473e400021ab9.tar.gz
Actually make previous changes work (oops).
Diffstat (limited to 'lib-src/update-game-score.c')
-rw-r--r--lib-src/update-game-score.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib-src/update-game-score.c b/lib-src/update-game-score.c
index e713d732fef..084b54fdb32 100644
--- a/lib-src/update-game-score.c
+++ b/lib-src/update-game-score.c
@@ -189,6 +189,7 @@ read_score(FILE *f, struct score_entry *score)
;
if (c == EOF)
return -1;
+ ungetc(c, f);
#ifdef HAVE_GETDELIM
{
int count = 0;
@@ -200,7 +201,9 @@ read_score(FILE *f, struct score_entry *score)
{
int unameread = 0;
int unamelen = 30;
- char *username;
+ char *username = malloc(unamelen);
+ if (!username)
+ return -1;
while ((c = getc(f)) != EOF
&& !isspace(c))
@@ -213,6 +216,9 @@ read_score(FILE *f, struct score_entry *score)
username[unameread] = c;
unameread++;
}
+ if (c == EOF)
+ return -1;
+ username[unameread] = '\0';
score->username = username;
}
#endif
@@ -231,7 +237,8 @@ read_score(FILE *f, struct score_entry *score)
char *buf = malloc(len);
if (!buf)
return -1;
- while ((c = getc(f)) != EOF)
+ while ((c = getc(f)) != EOF
+ && c != '\n')
{
if (cur >= len-1)
{
@@ -242,7 +249,6 @@ read_score(FILE *f, struct score_entry *score)
cur++;
}
score->data = buf;
- score->data[cur+1] = '\0';
}
#endif
/* Trim the newline */