Skip to content

Commit 444bc3c

Browse files
committed
Input validation, from David A. Holland on #NetBSD-code
1 parent 7d7720c commit 444bc3c

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

games/atc/input.c

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $NetBSD: input.c,v 1.20 2006/06/07 09:24:26 jnemeth Exp $ */
1+
/* $NetBSD: input.c,v 1.21 2006/10/07 18:29:02 elad Exp $ */
22

33
/*-
44
* Copyright (c) 1990, 1993
@@ -46,7 +46,7 @@
4646
#if 0
4747
static char sccsid[] = "@(#)input.c 8.1 (Berkeley) 5/31/93";
4848
#else
49-
__RCSID("$NetBSD: input.c,v 1.20 2006/06/07 09:24:26 jnemeth Exp $");
49+
__RCSID("$NetBSD: input.c,v 1.21 2006/10/07 18:29:02 elad Exp $");
5050
#endif
5151
#endif /* not lint */
5252

@@ -517,28 +517,40 @@ descend(int c __attribute__((__unused__)))
517517
const char *
518518
setalt(int c)
519519
{
520-
if ((p.altitude == c - '0') && (p.new_altitude == p.altitude))
520+
int newalt = c - '0';
521+
if ((p.altitude == newalt) && (p.new_altitude == p.altitude))
521522
return ("Already at that altitude");
522-
p.new_altitude = c - '0';
523+
if (p.new_altitude == newalt) {
524+
return ("Already going to that altitude");
525+
}
526+
p.new_altitude = newalt;
523527
return (NULL);
524528
}
525529

526530
const char *
527531
setrelalt(int c)
528532
{
533+
int newalt;
534+
529535
if (c == 0)
530536
return ("altitude not changed");
531537

532538
switch (dir) {
533539
case D_UP:
534-
p.new_altitude = p.altitude + c - '0';
540+
newalt = p.altitude + c - '0';
535541
break;
536542
case D_DOWN:
537-
p.new_altitude = p.altitude - (c - '0');
543+
newalt = p.altitude - (c - '0');
538544
break;
539545
default:
540546
return ("Unknown case in setrelalt! Get help!");
541547
}
548+
549+
if (p.new_altitude == newalt)
550+
return ("Already going to that altitude");
551+
552+
p.new_altitude = newalt;
553+
542554
if (p.new_altitude < 0)
543555
return ("Altitude would be too low");
544556
else if (p.new_altitude > 9)

0 commit comments

Comments
 (0)