Skip to content

Commit f1c5ed2

Browse files
committed
checks return value for scanf, aprintf, ...
1 parent c6e788e commit f1c5ed2

File tree

4 files changed

+19
-7
lines changed

4 files changed

+19
-7
lines changed

src/controls.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,11 @@ int cmove(GameInstance g, WINDOW **window) {
5353
break;
5454
case 'm':
5555
endwin();
56-
system("man mines-tui");
56+
if (system("man mines-tui") != 0) {
57+
printf("Please press enter to continue.\n");
58+
while (getchar() == 0)
59+
;
60+
}
5761
*window = create_window();
5862
break;
5963
}

src/display.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void print_scrollable(char **text, unsigned terminal_width,
5757
while (*tmp != NULL && index < highscore_window_height) {
5858
print_left_margin(terminal_width, text_width);
5959
printw("│");
60-
printw(*tmp);
60+
printw("%s", *tmp);
6161
for (int i = 0; i < text_width - strlen(*tmp); i++)
6262
printw(" ");
6363
printw("│\n");

src/highscore.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ FILE *init_state_files() {
1616
char *username = getenv("USER");
1717
if (strcmp(username, "root") == 0) {
1818
printf("Please enter your username ($USER): ");
19-
scanf("%s[^\n]", username_n);
19+
while (scanf("%s[^\n]", username_n) != 1)
20+
;
2021
username = username_n;
2122
}
2223
char save_path[strlen(save_directory) + strlen(username) + 5];
@@ -150,9 +151,12 @@ char **userHighscores2string(UserHighscore *highscores) {
150151
char time[32];
151152
struct tm *local_time = localtime(&highscores[index].highscore.date);
152153
strftime(time, 32, "%Y-%m-%d", local_time);
153-
asprintf(&tmp, " %02u:%02u %s %s ", highscores[index].highscore.time / 60,
154-
highscores[index].highscore.time % 60, time,
155-
highscores[index].user);
154+
if (asprintf(&tmp, " %02u:%02u %s %s ",
155+
highscores[index].highscore.time / 60,
156+
highscores[index].highscore.time % 60, time,
157+
highscores[index].user) == -1)
158+
exit(EXIT_FAILURE);
159+
156160
if (tmp == NULL)
157161
exit(EXIT_FAILURE);
158162
free(highscores[index].user);

src/menu.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,11 @@ GameInstance select_mode(WINDOW **window) {
104104
return get_custom_game(window);
105105
case 4:
106106
endwin();
107-
system("man mines-tui");
107+
if (system("man mines-tui") != 0) {
108+
printf("Please press enter to continue.\n");
109+
while (getchar() == 0)
110+
;
111+
}
108112
*window = create_window();
109113
return select_mode(window);
110114
default:

0 commit comments

Comments
 (0)