diff --git a/bin/stty/gfmt.c b/bin/stty/gfmt.c index 055edf880bd6..12ed2a2d3500 100644 --- a/bin/stty/gfmt.c +++ b/bin/stty/gfmt.c @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include "stty.h" @@ -85,7 +86,7 @@ gread(struct termios *tp, char *s) if (!(ep = strchr(p, '='))) gerr(p); *ep++ = '\0'; - (void)sscanf(ep, "%lx", (u_long *)&tmp); + tmp = strtoul(ep, NULL, 0x10); #define CHK(s) (*p == s[0] && !strcmp(p, s)) if (CHK("cflag")) { @@ -97,7 +98,7 @@ gread(struct termios *tp, char *s) continue; } if (CHK("ispeed")) { - (void)sscanf(ep, "%ld", &tmp); + tmp = strtoul(ep, NULL, 10); tp->c_ispeed = tmp; continue; } @@ -110,14 +111,14 @@ gread(struct termios *tp, char *s) continue; } if (CHK("ospeed")) { - (void)sscanf(ep, "%ld", &tmp); + tmp = strtoul(ep, NULL, 10); tp->c_ospeed = tmp; continue; } for (cp = cchars1; cp->name != NULL; ++cp) if (CHK(cp->name)) { if (cp->sub == VMIN || cp->sub == VTIME) - (void)sscanf(ep, "%ld", &tmp); + tmp = strtoul(ep, NULL, 10); tp->c_cc[cp->sub] = tmp; break; }