Mercurial > hg > early-roguelike
diff arogue5/main.c @ 310:827441d05b3e
Advanced Rogue family: fix some potential buffer overflows.
Some code for determining the score file location assumed that PATH_MAX
would be less than 1024, which cannot be guaranteed.
Advanced Rogue 5 and 7, and XRogue, have had the buffers for the file
name enlarged. UltraRogue never called the functions, so the code has
been deleted instead.
author | John "Elwin" Edwards |
---|---|
date | Mon, 03 May 2021 19:05:37 -0400 |
parents | e52a8a7ad4c5 |
children |
line wrap: on
line diff
--- a/arogue5/main.c Sun May 02 21:54:11 2021 -0400 +++ b/arogue5/main.c Mon May 03 19:05:37 2021 -0400 @@ -61,6 +61,7 @@ * get home and options from environment */ strncpy(home,md_gethomedir(),LINELEN); + home[LINELEN-1] = '\0'; #ifdef SAVEDIR if (argc >= 3 && !strcmp(argv[1], "-n")) { @@ -82,8 +83,8 @@ } #ifdef SCOREFILE - strncpy(score_file, SCOREFILE, LINELEN); - score_file[LINELEN - 1] = '\0'; + strncpy(score_file, SCOREFILE, PATH_MAX); + score_file[PATH_MAX - 1] = '\0'; #else /* Get default score file */ strcpy(score_file, roguedir);