ofp-actions: Prevent integer overflow in decode.
[cascardo/ovs.git] / lib / ofp-prop.h
index 2f07d07..4f8e78d 100644 (file)
@@ -85,6 +85,7 @@ enum ofperr ofpprop_parse_u16(const struct ofpbuf *, uint16_t *value);
 enum ofperr ofpprop_parse_u32(const struct ofpbuf *, uint32_t *value);
 enum ofperr ofpprop_parse_u64(const struct ofpbuf *, uint64_t *value);
 enum ofperr ofpprop_parse_uuid(const struct ofpbuf *, struct uuid *);
+enum ofperr ofpprop_parse_nested(const struct ofpbuf *, struct ofpbuf *);
 
 /* Serializing properties. */
 void ofpprop_put(struct ofpbuf *, uint64_t type,
@@ -100,10 +101,13 @@ void ofpprop_put_u64(struct ofpbuf *, uint64_t type, uint64_t value);
 void ofpprop_put_bitmap(struct ofpbuf *, uint64_t type, uint64_t bitmap);
 void ofpprop_put_flag(struct ofpbuf *, uint64_t type);
 void ofpprop_put_uuid(struct ofpbuf *, uint64_t type, const struct uuid *);
+void ofpprop_put_nested(struct ofpbuf *, uint64_t type, const struct ofpbuf *);
 
 size_t ofpprop_start(struct ofpbuf *, uint64_t type);
 void ofpprop_end(struct ofpbuf *, size_t start_ofs);
 
+size_t ofpprop_start_nested(struct ofpbuf *, uint64_t type);
+
 /* Logging errors while deserializing properties.
  *
  * The attitude that a piece of code should take when it deserializes an
@@ -129,6 +133,6 @@ void ofpprop_end(struct ofpbuf *, size_t start_ofs);
 enum ofperr ofpprop_unknown(struct vlog_module *, bool loose, const char *msg,
                             uint64_t type);
 #define OFPPROP_UNKNOWN(LOOSE, MSG, TYPE) \
-    ofpprop_unknown(THIS_MODULE, LOOSE, MSG, TYPE)
+    ofpprop_unknown(&this_module, LOOSE, MSG, TYPE)
 
 #endif /* ofp-prop.h */