view rogue4/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 9535a08ddc39
children
line wrap: on
line source

/*
 * print out an encrypted password on the standard output
 *
 * @(#)findpw.c	1.1 (Berkeley) 12/20/81
 *
 * 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.
 */

#include <stdio.h>

main()
{
    char buf[80];

    fprintf(stderr, "Password: ");
    fgets(buf, 80, stdin);
    buf[strlen(buf) - 1] = '\0';
    printf("%s\n", xcrypt(buf, "mT"));
}