[ovs-dev] [PATCH v2] nsh: Avoid zero-length array.
Ben Pfaff
blp at ovn.org
Tue Aug 8 23:05:03 UTC 2017
MSVC allows [] but not [0] for arrays in struct definitions,
and does not allow nested [] inside a union.
Reported-by: Alin Serdean <aserdean at cloudbasesolutions.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
---
v1->v2: Avoid [] in nested union also.
include/openvswitch/nsh.h | 6 +++---
lib/packets.c | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/openvswitch/nsh.h b/include/openvswitch/nsh.h
index d9be1e6fa3b4..f4ccadcdc6fb 100644
--- a/include/openvswitch/nsh.h
+++ b/include/openvswitch/nsh.h
@@ -58,7 +58,7 @@ struct nsh_md2_tlv {
ovs_be16 md_class;
uint8_t type;
uint8_t length;
- uint8_t md_value[];
+ /* Followed by variable-length data. */
};
struct nsh_hdr {
@@ -68,7 +68,7 @@ struct nsh_hdr {
ovs_16aligned_be32 path_hdr;
union {
struct nsh_md1_ctx md1;
- struct nsh_md2_tlv md2[0];
+ struct nsh_md2_tlv md2;
};
};
@@ -125,7 +125,7 @@ nsh_md1_ctx(struct nsh_hdr *nsh)
static inline struct nsh_md2_tlv *
nsh_md2_ctx(struct nsh_hdr *nsh)
{
- return nsh->md2;
+ return &nsh->md2;
}
#ifdef __cplusplus
diff --git a/lib/packets.c b/lib/packets.c
index a304853de4cc..74d87eda89e1 100644
--- a/lib/packets.c
+++ b/lib/packets.c
@@ -438,7 +438,7 @@ encap_nsh(struct dp_packet *packet, const struct ovs_action_encap_nsh *encap)
case NSH_M_TYPE2: {
/* The MD2 metadata in encap is already padded to 4 bytes. */
size_t len = ROUND_UP(encap->mdlen, 4);
- memcpy(nsh->md2, encap->metadata, len);
+ memcpy(&nsh->md2, encap->metadata, len);
break;
}
default:
--
2.10.2
More information about the dev
mailing list