diff options
-rw-r--r-- | lib/ofpbuf.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/ofpbuf.c b/lib/ofpbuf.c index eab523e31..1a090ee9c 100644 --- a/lib/ofpbuf.c +++ b/lib/ofpbuf.c @@ -185,7 +185,11 @@ ofpbuf_clone_with_headroom(const struct ofpbuf *b, size_t headroom) new_buffer->header = (char *) new_buffer->data + header_offset; } - new_buffer->msg = b->msg; + if (b->msg) { + ptrdiff_t msg_offset = (char *) b->msg - (char *) b->data; + + new_buffer->msg = (char *) new_buffer->data + msg_offset; + } return new_buffer; } |