On Fri, Jan 09, 2015 at 22:02, Theo de Raadt wrote:
>> There is something funny though. parse.y is checking host() for -1,
>> but the function never returns that. I think the return (0) is wrong,
>> and that's what should be changed. Or change parse.y to check for 0.
> 
> Nope -- you guys aren't testing your work.

OK. Like this then. No functional change.

Index: config.c
===================================================================
RCS file: /cvs/src/usr.sbin/ntpd/config.c,v
retrieving revision 1.19
diff -u -p -r1.19 config.c
--- config.c    27 May 2006 17:01:07 -0000      1.19
+++ config.c    10 Jan 2015 05:10:58 -0000
@@ -36,7 +36,7 @@ struct ntp_addr       *host_v6(const char *);
 
 static u_int32_t                maxid = 0;
 
-int
+void
 host(const char *s, struct ntp_addr **hn)
 {
        struct ntp_addr *h = NULL;
@@ -54,11 +54,9 @@ host(const char *s, struct ntp_addr **hn
                h = host_v6(s);
 
        if (h == NULL)
-               return (0);
+               return;
 
        *hn = h;
-
-       return (1);
 }
 
 struct ntp_addr        *
Index: ntpd.h
===================================================================
RCS file: /cvs/src/usr.sbin/ntpd/ntpd.h,v
retrieving revision 1.114
diff -u -p -r1.114 ntpd.h
--- ntpd.h      8 Jan 2015 00:30:08 -0000       1.114
+++ ntpd.h      10 Jan 2015 05:11:01 -0000
@@ -279,7 +279,7 @@ extern struct ctl_conns  ctl_conns;
 int     parse_config(const char *, struct ntpd_conf *);
 
 /* config.c */
-int                     host(const char *, struct ntp_addr **);
+void                    host(const char *, struct ntp_addr **);
 int                     host_dns(const char *, struct ntp_addr **);
 struct ntp_peer                *new_peer(void);
 struct ntp_conf_sensor *new_sensor(char *);
Index: parse.y
===================================================================
RCS file: /cvs/src/usr.sbin/ntpd/parse.y,v
retrieving revision 1.56
diff -u -p -r1.56 parse.y
--- parse.y     8 Jan 2015 00:30:08 -0000       1.56
+++ parse.y     10 Jan 2015 05:11:01 -0000
@@ -225,13 +225,7 @@ address            : STRING                {
                        if (($$ = calloc(1, sizeof(struct ntp_addr_wrap))) ==
                            NULL)
                                fatal(NULL);
-                       if (host($1, &$$->a) == -1) {
-                               yyerror("could not parse address spec \"%s\"",
-                                   $1);
-                               free($1);
-                               free($$);
-                               YYERROR;
-                       }
+                       host($1, &$$->a);
                        $$->name = $1;
                }
                ;

Reply via email to