summaryrefslogtreecommitdiff
path: root/lib-src/profile.c
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1994-02-23 17:43:05 +0000
committerKarl Heuer <kwzh@gnu.org>1994-02-23 17:43:05 +0000
commit1c1fce3febd73041ad73b2278079c26f22617d97 (patch)
tree0e00719328e0f383710df2e1e65020eaf65dcc1e /lib-src/profile.c
parentdfe05faccceaa886204b14a66eece91e5e365e58 (diff)
downloademacs-1c1fce3febd73041ad73b2278079c26f22617d97.tar.gz
(main, get_time): Don't crash on invalid input.
Diffstat (limited to 'lib-src/profile.c')
-rw-r--r--lib-src/profile.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/lib-src/profile.c b/lib-src/profile.c
index be705520505..b204e13c20f 100644
--- a/lib-src/profile.c
+++ b/lib-src/profile.c
@@ -49,13 +49,13 @@ reset_watch ()
/* This call returns the time since the last reset_watch call. The time
is returned as a string with the format <seconds>.<micro-seconds>
- If reset_watch was not called yet, return NULL. */
+ If reset_watch was not called yet, exit. */
char *
get_time ()
{
if (watch_not_started)
- return ((char *) 0); /* call reset_watch first ! */
+ exit (1); /* call reset_watch first ! */
gettimeofday (&TV2, tzp);
if (TV1.tv_usec > TV2.tv_usec)
{
@@ -70,10 +70,10 @@ get_time ()
void
main ()
{
- char inp[10];
- while (gets (inp))
+ int c;
+ while ((c = getchar ()) != EOF)
{
- switch (inp[0])
+ switch (c)
{
case 'z':
reset_watch ();
@@ -84,6 +84,9 @@ main ()
case 'q':
exit (0);
}
+ /* Anything remaining on the line is ignored. */
+ while (c != '\n' && c != EOF)
+ c = getchar ();
}
exit (1);
}