Module Name: src
Committed By: christos
Date: Fri Jan 11 20:41:53 UTC 2019
Modified Files:
src/usr.sbin/rtadvd: Makefile rtadvd.c
Log Message:
use expandm from libwrap.
To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/usr.sbin/rtadvd/Makefile
cvs rdiff -u -r1.66 -r1.67 src/usr.sbin/rtadvd/rtadvd.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/rtadvd/Makefile
diff -u src/usr.sbin/rtadvd/Makefile:1.21 src/usr.sbin/rtadvd/Makefile:1.22
--- src/usr.sbin/rtadvd/Makefile:1.21 Tue Oct 10 15:30:41 2017
+++ src/usr.sbin/rtadvd/Makefile Fri Jan 11 15:41:53 2019
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.21 2017/10/10 19:30:41 christos Exp $
+# $NetBSD: Makefile,v 1.22 2019/01/11 20:41:53 christos Exp $
WARNS?= 4
@@ -14,6 +14,12 @@ CPPFLAGS+= -DINET6
LDADD+= -lutil
DPADD+= ${LIBUTIL}
+LIBWRAP= ${NETBSDSRCDIR}/lib/libwrap
+SRCS+= expandm.c
+.PATH.c: ${LIBWRAP}
+CPPFLAGS+= -I${LIBWRAP}
+
+
.if ${MKSHARE} != "no"
FILESDIR= /usr/share/examples/rtadvd
FILES= rtadvd.conf
Index: src/usr.sbin/rtadvd/rtadvd.c
diff -u src/usr.sbin/rtadvd/rtadvd.c:1.66 src/usr.sbin/rtadvd/rtadvd.c:1.67
--- src/usr.sbin/rtadvd/rtadvd.c:1.66 Tue Apr 24 14:31:48 2018
+++ src/usr.sbin/rtadvd/rtadvd.c Fri Jan 11 15:41:53 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rtadvd.c,v 1.66 2018/04/24 18:31:48 roy Exp $ */
+/* $NetBSD: rtadvd.c,v 1.67 2019/01/11 20:41:53 christos Exp $ */
/* $KAME: rtadvd.c,v 1.92 2005/10/17 14:40:02 suz Exp $ */
/*
@@ -70,6 +70,7 @@
#include "dump.h"
#include "logit.h"
#include "prog_ops.h"
+#include "expandm.h"
struct msghdr rcvmhdr;
static unsigned char *rcvcmsgbuf;
@@ -1842,36 +1843,11 @@ ra_timer_update(void *data, struct times
(intmax_t)tm->tv_sec, (intmax_t)tm->tv_nsec);
}
- __format_arg(3)
-static const char *
-expandm(char *buf, size_t len, const char *fmt)
-{
- char *ptr;
- const char *e = strerror(errno);
- size_t cur = 0, elen = strlen(e);
-
- *buf = '\0';
- while ((ptr = strstr(fmt, "%m")) != NULL) {
- size_t l = (size_t)(ptr - fmt);
- if (cur + elen + l + 1 >= len)
- return buf;
- memcpy(buf + cur, fmt, l);
- cur += l;
- memcpy(buf + cur, e, elen);
- cur += elen;
- fmt += l + 2;
- buf[cur] = '\0';
- }
- strlcat(buf, fmt, len);
- strlcat(buf, "\n", len); /* syslog does not need \n, printf does */
- return buf;
-}
-
void
logit(int level, const char *fmt, ...)
{
va_list ap;
- char buf[1024];
+ char *buf;
va_start(ap, fmt);
if (!Dflag) {
@@ -1880,6 +1856,8 @@ logit(int level, const char *fmt, ...)
return;
}
- vfprintf(stderr, expandm(buf, sizeof(buf), fmt), ap);
+ vfprintf(stderr, buf = expandm(fmt, "\n"), ap);
+ if (buf != fmt)
+ free(buf);
va_end(ap);
}