Mercurial > hg > early-roguelike
comparison arogue5/main.c @ 66:c56f672244f4
arogue5: close security holes.
Prevent whoami (player name), file_name, and score_file from being
changed if the systemwide save location is being used.
| author | elwin |
|---|---|
| date | Sat, 11 Aug 2012 16:27:20 +0000 |
| parents | a98834ce7e04 |
| children | c49f7927b0fa |
comparison
equal
deleted
inserted
replaced
| 65:7aff18a8d508 | 66:c56f672244f4 |
|---|---|
| 90 #endif | 90 #endif |
| 91 | 91 |
| 92 if ((env = getenv("ROGUEOPTS")) != NULL) | 92 if ((env = getenv("ROGUEOPTS")) != NULL) |
| 93 parse_opts(env); | 93 parse_opts(env); |
| 94 | 94 |
| 95 if (whoami[0] == '\0') | 95 if (!use_savedir && whoami[0] == '\0') |
| 96 strucpy(whoami, md_getusername(), strlen(md_getusername())); | 96 strucpy(whoami, md_getusername(), strlen(md_getusername())); |
| 97 | 97 |
| 98 if (env == NULL || fruit[0] == '\0') { | 98 if (env == NULL || fruit[0] == '\0') { |
| 99 md_srand((long)(getpid()+time(0))); | 99 md_srand((long)(getpid()+time(0))); |
| 100 strcpy(fruit, funfruit[rnd(NFRUIT)]); | 100 strcpy(fruit, funfruit[rnd(NFRUIT)]); |
| 192 if (LINES < 24 || COLS < 80) { | 192 if (LINES < 24 || COLS < 80) { |
| 193 printf("\nERROR: screen size to small for rogue\n"); | 193 printf("\nERROR: screen size to small for rogue\n"); |
| 194 byebye(-1); | 194 byebye(-1); |
| 195 } | 195 } |
| 196 | 196 |
| 197 if ((whoami == NULL) || (*whoami == '\0') || (strcmp(whoami,"dosuser")==0)) | 197 if (!use_savedir) { |
| 198 { | 198 if ((whoami == NULL) || (*whoami == '\0') || |
| 199 echo(); | 199 (strcmp(whoami,"dosuser")==0)) |
| 200 mvaddstr(23,2,"Rogue's Name? "); | 200 { |
| 201 wgetnstr(stdscr,whoami,LINELEN); | 201 echo(); |
| 202 noecho(); | 202 mvaddstr(23,2,"Rogue's Name? "); |
| 203 } | 203 wgetnstr(stdscr,whoami,LINELEN); |
| 204 | 204 noecho(); |
| 205 if ((whoami == NULL) || (*whoami == '\0')) | 205 } |
| 206 strcpy(whoami,"Rodney"); | 206 |
| 207 if ((whoami == NULL) || (*whoami == '\0')) | |
| 208 strcpy(whoami,"Rodney"); | |
| 209 } | |
| 207 | 210 |
| 208 setup(); | 211 setup(); |
| 209 /* | 212 /* |
| 210 * Set up windows | 213 * Set up windows |
| 211 */ | 214 */ |
