aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorIan Dowse <iedowse@FreeBSD.org>2004-01-31 17:44:27 +0000
committerIan Dowse <iedowse@FreeBSD.org>2004-01-31 17:44:27 +0000
commit9323dbdb0abc163b70f8de399732b48dc525f06a (patch)
tree740aaf5df3cea3aa816766234aba22cf370511fc /usr.sbin
parent387c10289f8d95255a5a40a41303b6b6075251d3 (diff)
downloadsrc-9323dbdb0abc163b70f8de399732b48dc525f06a.tar.gz
src-9323dbdb0abc163b70f8de399732b48dc525f06a.zip
Use strtol to parse the <%d> tags in printline() and printsys().
Sort local variables declarations in these functions. Submitted by: bde
Notes
Notes: svn path=/head/; revision=125271
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/syslogd/syslogd.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c
index 0acb9ffcc478..9e080b400295 100644
--- a/usr.sbin/syslogd/syslogd.c
+++ b/usr.sbin/syslogd/syslogd.c
@@ -645,18 +645,21 @@ usage(void)
static void
printline(const char *hname, char *msg)
{
+ char *p, *q;
+ long n;
int c, pri;
- char *p, *q, line[MAXLINE + 1];
+ char line[MAXLINE + 1];
/* test for special codes */
- pri = DEFUPRI;
p = msg;
+ pri = DEFUPRI;
if (*p == '<') {
- pri = 0;
- while (isdigit(*++p))
- pri = 10 * pri + (*p - '0');
- if (*p == '>')
- ++p;
+ errno = 0;
+ n = strtol(p + 1, &q, 10);
+ if (*q == '>' && n >= 0 && n < INT_MAX && errno == 0) {
+ p = q + 1;
+ pri = n;
+ }
}
if (pri &~ (LOG_FACMASK|LOG_PRIMASK))
pri = DEFUPRI;
@@ -736,24 +739,21 @@ readklog(void)
static void
printsys(char *msg)
{
- char *p;
- int flags, isprintf, n, pri;
+ char *p, *q;
+ long n;
+ int flags, isprintf, pri;
flags = ISKERNEL | SYNC_FILE | ADDDATE; /* fsync after write */
- pri = DEFSPRI;
p = msg;
+ pri = DEFSPRI;
isprintf = 1;
if (*p == '<') {
- n = 0;
- while (isdigit(*++p))
- n = 10 * n + (*p - '0');
- if (*p == '>') {
- ++p;
+ errno = 0;
+ n = strtol(p + 1, &q, 10);
+ if (*q == '>' && n >= 0 && n < INT_MAX && errno == 0) {
+ p = q + 1;
pri = n;
isprintf = 0;
- } else {
- /* It wasn't actually a syslog message. */
- p = msg;
}
}
/*