Page MenuHomeFreeBSD

D54148.id167819.diff
No OneTemporary

D54148.id167819.diff

diff --git a/sys/netlink/netlink_snl.h b/sys/netlink/netlink_snl.h
--- a/sys/netlink/netlink_snl.h
+++ b/sys/netlink/netlink_snl.h
@@ -1083,6 +1083,7 @@
snl_realloc_msg_buffer(struct snl_writer *nw, size_t sz)
{
uint32_t new_size = nw->size * 2;
+ char *new_base;
while (new_size < nw->size + sz)
new_size *= 2;
@@ -1090,23 +1091,20 @@
if (nw->error)
return (false);
- if (snl_allocz(nw->ss, new_size) == NULL) {
+ new_base = snl_allocz(nw->ss, new_size);
+ if (new_base == NULL) {
nw->error = true;
return (false);
}
- nw->size = new_size;
- void *new_base = nw->ss->lb->base;
- if (new_base != nw->base) {
- memcpy(new_base, nw->base, nw->offset);
- if (nw->hdr != NULL) {
- int hdr_off = (char *)(nw->hdr) - nw->base;
+ memcpy(new_base, nw->base, nw->offset);
+ if (nw->hdr != NULL) {
+ int hdr_off = (char *)(nw->hdr) - nw->base;
- nw->hdr = (struct nlmsghdr *)
- (void *)((char *)new_base + hdr_off);
- }
- nw->base = (char *)new_base;
+ nw->hdr = (struct nlmsghdr *)(void *)(new_base + hdr_off);
}
+ nw->base = new_base;
+ nw->size = new_size;
return (true);
}

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 13, 4:41 AM (12 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26867438
Default Alt Text
D54148.id167819.diff (1 KB)

Event Timeline