view rogue5/rogue.cat.in @ 176:db1c9a21a7c3

srogue: prevent overflowing the score file name. If SCOREFILE is not defined, roguehome() is called to find a directory for the score file. It copies up to PATH_MAX-20 bytes from an environment variable to a static buffer. Later these are strcpy()'d to scorefile, which is of size LINLEN. Unfortunately LINLEN is 80 and PATH_MAX is at least 256. On Linux, it happens to be 4096. I haven't yet managed to crash or exploit it, but there are surely no beneficial consequences, so roguehome() has been modified to check the length, and the string it returns is also checked in main().
author John "Elwin" Edwards
date Sun, 02 Aug 2015 12:14:47 -0400
parents f502bf60e6e4
children
line wrap: on
line source

ROGUE(6)                                                              ROGUE(6)



NAME
       rogue - Exploring The Dungeons of Doom

SYNOPSIS
       @PROGRAM@ [ -r ] [ save_file ] [ -s ] [ -d ]

DESCRIPTION
       Rogue  is a computer fantasy game with a new twist.  It is crt oriented
       and the object of the game is to survive the attacks  of  various  mon-
       sters and get a lot of gold, rather than the puzzle solving orientation
       of most computer fantasy games.

       To get started you really only need to know two commands.  The  command
       ?   will  give  you  a list of the available commands and the command /
       will identify the things you see on the screen.

       To win the game (as opposed to merely playing to  beat  other  people's
       high  scores)  you  must locate the Amulet of Yendor which is somewhere
       below the 20th level of  the  dungeon  and  get  it  out.   Nobody  has
       achieved  this  yet and if somebody does, they will probably go down in
       history as a hero among heroes.

       When the game ends, either by your death, when you quit, or if you  (by
       some  miracle) manage to win, rogue will give you a list of the top-ten
       scorers.  The scoring is based entirely upon how  much  gold  you  get.
       There is a 10% penalty for getting yourself killed.

       If  save_file  is  specified, rogue will be restored from the specified
       saved game file.  If the -r option is used, the save game file is  pre-
       sumed to be the default.

       The -s option will print out the list of scores.

       The -d option will kill you and try to add you to the score file.

       For more detailed directions, read the document A Guide to the Dungeons
       of Doom.

AUTHORS
       Michael C. Toy, Kenneth C. R. C. Arnold, Glenn Wichman

FILES
       @SCOREFILE@                   Score file
       ~/rogue.save                Default save file

SEE ALSO
       Michael C. Toy and Kenneth C. R. C. Arnold, A guide to the Dungeons  of
       Doom

BUGS
       Probably  infinite  (although  countably  infinite).  However, that Ice
       Monsters sometimes transfix you permanently is not a bug.  It's a  fea-
       ture.



4th Berkeley Distribution         May 6, 1986                         ROGUE(6)