]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-openflow-1.3.c
Makefile.in: don't remove configure and config.h.in in make distclean.
[tcpdump] / print-openflow-1.3.c
index 79de7d7b9999205bf3d9e86bc7fd584ed16e4eb5..8008c2f38ccb4d8746189957e13086abbd5d5c33 100644 (file)
@@ -661,7 +661,7 @@ of13_port_print(netdissect_options *ndo,
        cp += 2;
        /* name */
        ND_PRINT(", name '");
-       (void)nd_print(ndo, cp, cp + OFP_MAX_PORT_NAME_LEN);
+       nd_printjnp(ndo, cp, OFP_MAX_PORT_NAME_LEN);
        ND_PRINT("'");
        cp += OFP_MAX_PORT_NAME_LEN;
 
@@ -856,21 +856,20 @@ of13_hello_elements_print(netdissect_options *ndo,
        while (len) {
                uint16_t type, bmlen;
 
-               if (len < OF_HELLO_ELEM_MINSIZE)
-                       goto invalid;
+               ND_PRINT("\n\t");
+               ND_ICHECKMSG_U("remaining length", len, <, OF_HELLO_ELEM_MINSIZE);
                /* type */
                type = GET_BE_U_2(cp);
                OF_FWD(2);
-               ND_PRINT("\n\t type %s",
+               ND_PRINT(" type %s",
                         tok2str(ofphet_str, "unknown (0x%04x)", type));
                /* length */
                bmlen = GET_BE_U_2(cp);
                OF_FWD(2);
                ND_PRINT(", length %u", bmlen);
                /* cp is OF_HELLO_ELEM_MINSIZE bytes in */
-               if (bmlen < OF_HELLO_ELEM_MINSIZE ||
-                   bmlen > OF_HELLO_ELEM_MINSIZE + len)
-                       goto invalid;
+               ND_ICHECKMSG_U("bitmap length", bmlen, <, OF_HELLO_ELEM_MINSIZE);
+               ND_ICHECKMSG_U("bitmap length", bmlen, >, OF_HELLO_ELEM_MINSIZE + len);
                switch (type) {
                case OFPHET_VERSIONBITMAP:
                        /*