Mercurial > hg > early-roguelike
view rogue5/findpw.c @ 313:2f75940cc544
Advanced Rogue 7: fix a string literal overwrite.
pick_spell() attempted to capitalize type by overwriting the first
character, changing it back later. All calls of pick_spell passed a
string literal as type, and string literals should be considered
immutable.
This has been fixed by using a separate variable for the capitalized
first character. XRogue already has a similar fix.
Reported by John Harris of @Play.
author | John "Elwin" Edwards |
---|---|
date | Tue, 19 Oct 2021 20:39:00 -0400 |
parents | f502bf60e6e4 |
children |
line wrap: on
line source
/* * print out an encrypted password on the standard output * * @(#)findpw.c 1.4 (Berkeley) 02/05/99 * * Rogue: Exploring the Dungeons of Doom * Copyright (C) 1980-1983, 1985, 1999 Michael Toy, Ken Arnold and Glenn Wichman * All rights reserved. * * See the file LICENSE.TXT for full copyright and licensing information. */ #include <stdio.h> main(int argc, char *argv[]) { char buf[80]; fprintf(stderr, "Password: "); (void) fgets(buf, 80, stdin); buf[strlen(buf) - 1] = '\0'; printf("%s\n", xcrypt(buf, "mT")); }