summaryrefslogtreecommitdiffstats
path: root/contrib/bind/bin/ndc/ndc.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bind/bin/ndc/ndc.c')
-rw-r--r--contrib/bind/bin/ndc/ndc.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/contrib/bind/bin/ndc/ndc.c b/contrib/bind/bin/ndc/ndc.c
index d077042..1499184 100644
--- a/contrib/bind/bin/ndc/ndc.c
+++ b/contrib/bind/bin/ndc/ndc.c
@@ -1,5 +1,5 @@
#if !defined(lint) && !defined(SABER)
-static const char rcsid[] = "$Id: ndc.c,v 1.22 2002/06/24 07:28:55 marka Exp $";
+static const char rcsid[] = "$Id: ndc.c,v 1.25 2003/04/03 05:42:10 marka Exp $";
#endif /* not lint */
/*
@@ -88,7 +88,7 @@ static void start_named(const char *, int);
static int fgetpid(const char *, pid_t *);
static int get_sockaddr(const char *, sockaddr_t *);
static size_t impute_addrlen(const struct sockaddr *);
-static void vtrace(const char *, va_list);
+static void vtrace(const char *, va_list) ISC_FORMAT_PRINTF(1, 0);
static void trace(const char *, ...) ISC_FORMAT_PRINTF(1, 2);
static void result(const char *, ...) ISC_FORMAT_PRINTF(1, 2);
static void fatal(const char *, ...) ISC_FORMAT_PRINTF(1, 2);
@@ -283,7 +283,7 @@ getargs_closure(void *arg, const char *msg, int flags) {
}
len = 0;
cp = msg + 4;
- while (*cp != NULL) {
+ while (*cp != '\0') {
c = *cp;
if (c == '%') {
cp2 = strchr(hexdigits, cp[1]);
@@ -325,7 +325,7 @@ getargs_closure(void *arg, const char *msg, int flags) {
}
cp = msg + 4;
tp = argv->argv[i];
- while (*cp != NULL) {
+ while (*cp != '\0') {
c = *cp;
if (c == '%') {
cp2 = strchr(hexdigits, cp[1]);
@@ -374,6 +374,8 @@ get_args(char **restp) {
len = 0;
for (i = 1 ; i < argv.argc && argv.argv[i] != NULL; i++)
len += strlen(argv.argv[i]) + 1;
+ if (len == 0)
+ len = 1;
rest = malloc(len);
if (rest == NULL) {
result = 0;
@@ -386,7 +388,8 @@ get_args(char **restp) {
*p++ = ' ';
}
if (p != rest)
- p[-1] = '\0';
+ p--;
+ p[0] = '\0';
*restp = rest;
err:
OpenPOWER on IntegriCloud