mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 01:30:30 -04:00
Make sysctl_wire_old_buffer() respect ENOMEM from vslock() by marking
the valid length as 0. This prevents vsunlock() from removing a system wire from memory that was not successfully wired (by us). Submitted by: tegge
This commit is contained in:
parent
c066ba2f01
commit
b4adfcf2f4
1 changed files with 5 additions and 2 deletions
|
|
@ -1101,8 +1101,11 @@ sysctl_wire_old_buffer(struct sysctl_req *req, size_t len)
|
|||
req->oldfunc == sysctl_old_user) {
|
||||
if (wiredlen != 0) {
|
||||
ret = vslock(req->oldptr, wiredlen);
|
||||
if (ret != 0 && ret != ENOMEM)
|
||||
return (ret);
|
||||
if (ret != 0) {
|
||||
if (ret != ENOMEM)
|
||||
return (ret);
|
||||
wiredlen = 0;
|
||||
}
|
||||
}
|
||||
req->lock = REQ_WIRED;
|
||||
req->validlen = wiredlen;
|
||||
|
|
|
|||
Loading…
Reference in a new issue