Mercurial > hg > early-roguelike
view rogue4/extern.h @ 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 source
/* * Defines for things used in mach_dep.c * * @(#)extern.h 4.3 (Berkeley) 4/2/82 * * Rogue: Exploring the Dungeons of Doom * Copyright (C) 1980, 1981, 1982 Michael Toy, Ken Arnold and Glenn Wichman * All rights reserved. * * See the file LICENSE.TXT for full copyright and licensing information. */ /* * Don't change the constants, since they are used for sizes in many * places in the program. */ #define MAXSTR 80 /* maximum length of strings */ #define MAXLINES 32 /* maximum number of screen lines used */ #define MAXCOLS 80 /* maximum number of screen columns used */ #define RN (((seed = seed*11109+13849) >> 16) & 0xffff) /* * Now all the global variables */ extern bool after, amulet, askme, door_stop, fight_flush, firstmove, in_shell, jump, noscore, p_know[], passgo, playing, r_know[], running, s_know[], save_msg, slow_invent, terse, use_savedir, wizard, ws_know[]; extern const char *p_colors[], *r_stones[], *w_names[], *a_names[], *ws_made[]; extern char _flags[], _level[], file_name[], fruit[], home[], huh[], outbuf[], *p_guess[], prbuf[], *r_guess[], *release, runch, *s_guess[], *s_names[], take, whoami[], *ws_guess[], *ws_type[]; extern int a_chances[], a_class[], count, dnum, food_left, fung_hit, group, hungry_state, inpack, lastscore, level, max_level, mpos, no_command, no_food, no_move, ntraps, purse, quiet, total; extern long seed; extern FILE *score_file, *log_file; extern WINDOW *hw; /* * Function types */ void tstp(), endit(int); long lseek(); extern coord ch_ret; extern char countch; extern char direction; extern char newcount; extern int between; extern int num_checks; extern char lvl_mons[27]; extern char wand_mons[27]; extern coord nh; extern bool got_genocide; #if defined(__GLIBC__) || defined(__INTERIX) /* O_BINARY flag not provided in Interix/SFU or some versions of Linux. It is the same as default behavior so we just zero define it here to make source code compatible. */ #define O_BINARY 0 #endif extern int md_erasechar(void); extern FILE *md_fdopen(int fd, char *mode); extern int md_fileno(FILE *fp); extern char *md_getusername(int uid); extern char *md_gethomedir(); extern char *md_getpass(char *prompt); extern int md_getuid(void); extern void md_ignore_signals(void); extern void md_init(void); extern int md_killchar(void); extern void md_normaluser(void); extern int md_readchar(WINDOW *win); extern int md_shellescape(void); extern void md_sleep(int s); extern int md_unlink(char *file); extern int md_unlink_open_file(char *file, FILE *inf); extern unsigned int md_random_seed(void);