Page MenuHomeFreeBSD

D43003.diff
No OneTemporary

D43003.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
@@ -1036,19 +1036,23 @@
if (nw->error)
return (false);
- void *new_base = snl_allocz(nw->ss, new_size);
- if (new_base == NULL) {
+ if (snl_allocz(nw->ss, new_size) == NULL) {
nw->error = true;
return (false);
}
+ nw->size = new_size;
- memcpy(new_base, nw->base, nw->offset);
- if (nw->hdr != NULL) {
- int hdr_off = (char *)(nw->hdr) - nw->base;
+ 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;
- nw->hdr = (struct nlmsghdr *)(void *)((char *)new_base + hdr_off);
+ nw->hdr = (struct nlmsghdr *)
+ (void *)((char *)new_base + hdr_off);
+ }
+ nw->base = new_base;
}
- nw->base = new_base;
return (true);
}

File Metadata

Mime Type
text/plain
Expires
Sat, Aug 15, 7:23 PM (4 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
36793212
Default Alt Text
D43003.diff (912 B)

Event Timeline