Hi,

as promised a patch to relayd to enable formatting warnings for yyerror.

Greetings,
Moritz Buhl

Index: usr.sbin/relayd/parse.y
===================================================================
RCS file: /cvs/src/usr.sbin/relayd/parse.y,v
retrieving revision 1.238
diff -u -p -r1.238 parse.y
--- usr.sbin/relayd/parse.y     31 May 2019 15:25:57 -0000      1.238
+++ usr.sbin/relayd/parse.y     4 Jul 2019 14:59:36 -0000
@@ -75,7 +75,9 @@ int            popfile(void);
 int             check_file_secrecy(int, const char *);
 int             yyparse(void);
 int             yylex(void);
-int             yyerror(const char *, ...);
+int             yyerror(const char *, ...)
+    __attribute__((__format__ (printf, 1, 2)))
+    __attribute__((__nonnull__ (1)));
 int             kw_cmp(const void *, const void *);
 int             lookup(char *);
 int             igetc(void);
@@ -350,7 +352,7 @@ port                : PORT HTTP {
                }
                | PORT NUMBER {
                        if ($2 <= 0 || $2 > (int)USHRT_MAX) {
-                               yyerror("invalid port: %d", $2);
+                               yyerror("invalid port: %lld", $2);
                                YYERROR;
                        }
                        $$.val[0] = htons($2);
@@ -389,7 +391,7 @@ sendbuf             : NOTHING               {
 
 main           : INTERVAL NUMBER       {
                        if ((conf->sc_conf.interval.tv_sec = $2) < 0) {
-                               yyerror("invalid interval: %d", $2);
+                               yyerror("invalid interval: %lld", $2);
                                YYERROR;
                        }
                }
@@ -403,7 +405,7 @@ main                : INTERVAL NUMBER       {
                | PREFORK NUMBER        {
                        if ($2 <= 0 || $2 > PROC_MAX_INSTANCES) {
                                yyerror("invalid number of preforked "
-                                   "relays: %d", $2);
+                                   "relays: %lld", $2);
                                YYERROR;
                        }
                        conf->sc_conf.prefork_relay = $2;
@@ -895,7 +897,7 @@ tablecheck  : ICMP                  { table->conf.check 
                        }
                        table->conf.check = CHECK_HTTP_CODE;
                        if ((table->conf.retcode = $5) <= 0) {
-                               yyerror("invalid HTTP code: %d", $5);
+                               yyerror("invalid HTTP code: %lld", $5);
                                free($2);
                                free($3);
                                YYERROR;
@@ -1094,7 +1096,7 @@ httpflags_l       : httpflags comma httpflags_
 
 httpflags      : HEADERLEN NUMBER      {
                        if ($2 < 0 || $2 > RELAY_MAXHEADERLENGTH) {
-                               yyerror("invalid headerlen: %d", $2);
+                               yyerror("invalid headerlen: %lld", $2);
                                YYERROR;
                        }
                        proto->httpheaderlen = $2;
@@ -1115,7 +1117,7 @@ tcpflags  : SACK                  { proto->tcpflags |= T
                | NO SPLICE             { proto->tcpflags |= TCPFLAG_NSPLICE; }
                | BACKLOG NUMBER        {
                        if ($2 < 0 || $2 > RELAY_MAX_BACKLOG) {
-                               yyerror("invalid backlog: %d", $2);
+                               yyerror("invalid backlog: %lld", $2);
                                YYERROR;
                        }
                        proto->tcpbacklog = $2;
@@ -1123,13 +1125,13 @@ tcpflags        : SACK                  { 
proto->tcpflags |= T
                | SOCKET BUFFER NUMBER  {
                        proto->tcpflags |= TCPFLAG_BUFSIZ;
                        if ((proto->tcpbufsiz = $3) < 0) {
-                               yyerror("invalid socket buffer size: %d", $3);
+                               yyerror("invalid socket buffer size: %lld", $3);
                                YYERROR;
                        }
                }
                | IP STRING NUMBER      {
                        if ($3 < 0) {
-                               yyerror("invalid ttl: %d", $3);
+                               yyerror("invalid ttl: %lld", $3);
                                free($2);
                                YYERROR;
                        }
@@ -2072,7 +2074,7 @@ routeoptsl        : ROUTE addrprefix {
                                YYERROR;
                        }
                        if ($2 < 0 || $2 > RT_TABLEID_MAX) {
-                               yyerror("invalid rtable id %d", $2);
+                               yyerror("invalid rtable id %lld", $2);
                                YYERROR;
                        }
                        router->rt_conf.rtable = $2;
@@ -2150,7 +2152,7 @@ hostflags : RETRY NUMBER          {
                                YYERROR;
                        }
                        if ($2 < 0) {
-                               yyerror("invalid retry value: %d\n", $2);
+                               yyerror("invalid retry value: %lld\n", $2);
                                YYERROR;
                        }
                        hst->conf.retry = $2;
@@ -2161,7 +2163,7 @@ hostflags : RETRY NUMBER          {
                                YYERROR;
                        }
                        if ($2 < 0) {
-                               yyerror("invalid parent value: %d\n", $2);
+                               yyerror("invalid parent value: %lld\n", $2);
                                YYERROR;
                        }
                        hst->conf.parentid = $2;
@@ -2172,7 +2174,7 @@ hostflags : RETRY NUMBER          {
                                YYERROR;
                        }
                        if ($2 < 0 || $2 > RTP_MAX) {
-                               yyerror("invalid priority value: %d\n", $2);
+                               yyerror("invalid priority value: %lld\n", $2);
                                YYERROR;
                        }
                        hst->conf.priority = $2;
@@ -2183,7 +2185,7 @@ hostflags : RETRY NUMBER          {
                                YYERROR;
                        }
                        if ($3 < 0) {
-                               yyerror("invalid ttl value: %d\n", $3);
+                               yyerror("invalid ttl value: %lld\n", $3);
                                YYERROR;
                        }
                        hst->conf.ttl = $3;
@@ -2220,7 +2222,7 @@ addrprefix        : address '/' NUMBER            {
                            ($3 > 32 || $3 < 0)) ||
                            ($$.ss.ss_family == AF_INET6 &&
                            ($3 > 128 || $3 < 0))) {
-                               yyerror("invalid prefixlen %d", $3);
+                               yyerror("invalid prefixlen %lld", $3);
                                YYERROR;
                        }
                        $$.prefixlen = $3;
@@ -2237,7 +2239,7 @@ addrprefix        : address '/' NUMBER            {
 retry          : /* empty */           { $$ = 0; }
                | RETRY NUMBER          {
                        if (($$ = $2) < 0) {
-                               yyerror("invalid retry value: %d\n", $2);
+                               yyerror("invalid retry value: %lld\n", $2);
                                YYERROR;
                        }
                }
@@ -2246,7 +2248,7 @@ retry             : /* empty */           { $$ = 0; }
 timeout                : NUMBER
                {
                        if ($1 < 0) {
-                               yyerror("invalid timeout: %d\n", $1);
+                               yyerror("invalid timeout: %lld\n", $1);
                                YYERROR;
                        }
                        $$.tv_sec = $1 / 1000;

Reply via email to