]> granicus.if.org Git - libnl/commitdiff
Clang diagnostics
authorКоренберг Марк (ноутбук дома) <socketpair@gmail.com>
Sun, 9 Sep 2012 19:33:04 +0000 (01:33 +0600)
committerКоренберг Марк (дома) <socketpair@gmail.com>
Fri, 19 Oct 2012 16:32:59 +0000 (22:32 +0600)
Based on clang diagnostics:

1. lib/nl.c: recvmsgs(): nla filling with zeros commented.
2. lib/route/classid.c: & lib/route/pktloc.c:
   remove zero-filling of struct stat
3. lib/route/qdisc/htb.c: Fix htb_qdisc_msg_fill(): fix zero-filling
4. ematch/container.c: container_parse:
   commented why only 4 bytes are copied
   len marked as unused to eliminate compiler warning

lib/nl.c
lib/route/classid.c
lib/route/cls/ematch/container.c
lib/route/pktloc.c
lib/route/qdisc/htb.c

index 5b37c2a3a20b492e0ff2738951eb961c1390eb22..2fa741f0eb29480d68fa96ddd47fe751ce083992 100644 (file)
--- a/lib/nl.c
+++ b/lib/nl.c
@@ -540,6 +540,12 @@ static int recvmsgs(struct nl_sock *sk, struct nl_cb *cb)
        int n, err = 0, multipart = 0, interrupted = 0, nrecv = 0;
        unsigned char *buf = NULL;
        struct nlmsghdr *hdr;
+
+       /*
+       nla is passed on to not only to nl_recv() but may also be passed
+       to a function pointer provided by the caller which may or may not
+       initialize the variable. Thomas Graf.
+       */
        struct sockaddr_nl nla = {0};
        struct nl_msg *msg = NULL;
        struct ucred *creds = NULL;
index a1287733f92d49b9aca23b91ed58a639ab5da4eb..87025a0014adbbfe876b39d7f23b09de89fe846a 100644 (file)
@@ -311,7 +311,7 @@ static int classid_map_add(uint32_t classid, const char *name)
 int rtnl_tc_read_classid_file(void)
 {
        static time_t last_read;
-       struct stat st = {0};
+       struct stat st;
        char buf[256], *path;
        FILE *fd;
        int err;
index ddbdce0aa69d37c1b665c8bbee8f49fafb36afce..6d73ab683d21712fbd80938dcc0abbce7efcbe5e 100644 (file)
 #include <netlink/netlink.h>
 #include <netlink/route/cls/ematch.h>
 
-static int container_parse(struct rtnl_ematch *e, void *data, size_t len)
+static int container_parse(struct rtnl_ematch *e, void *data, size_t len __attribute__((unused)))
 {
+       /*
+       The kernel may provide more than 4 bytes of data in the future and we want
+       older libnl versions to be ok with that. We want interfaces to be growable
+       so we only ever enforce a minimum data length and copy as much as we are
+       aware of. Thomas Graf.
+       */
        memcpy(e->e_data, data, sizeof(uint32_t));
 
        return 0;
index e7dffe5893557f2c739a341be15bfe58c6e63c70..70d552ba5c54e5b62dc964cd84c40886f22d5e0f 100644 (file)
@@ -90,7 +90,7 @@ static int read_pktlocs(void)
        YY_BUFFER_STATE buf = NULL;
        yyscan_t scanner = NULL;
        static time_t last_read;
-       struct stat st = {0};
+       struct stat st;
        char *path;
        int i, err;
        FILE *fd;
index 42985808bc177f56be5c92da69dbe9139128c4f8..9fb0bf63563a5e851f2f6623c2c72874e7d45f8d 100644 (file)
@@ -190,10 +190,10 @@ static int htb_qdisc_msg_fill(struct rtnl_tc *tc, void *data,
                              struct nl_msg *msg)
 {
        struct rtnl_htb_qdisc *htb = data;
-       struct tc_htb_glob opts = {0};
-
-       opts.version = TC_HTB_PROTOVER;
-       opts.rate2quantum = 10;
+       struct tc_htb_glob opts = {
+               .version = TC_HTB_PROTOVER,
+               .rate2quantum = 10,
+        };
 
        if (htb) {
                if (htb->qh_mask & SCH_HTB_HAS_RATE2QUANTUM)