Page MenuHomeFreeBSD

libpfctl: fix pfctl_do_ioctl()
ClosedPublic

Authored by kp on Oct 23 2023, 3:13 PM.
Tags
None
Referenced Files
F171856253: D42329.id129283.diff
Mon, Sep 14, 2:53 AM
F171817245: D42329.id129247.diff
Sun, Sep 13, 6:44 PM
Unknown Object (File)
Thu, Sep 10, 1:50 AM
Unknown Object (File)
Sun, Sep 6, 1:11 AM
Unknown Object (File)
Thu, Sep 3, 10:05 PM
Unknown Object (File)
Fri, Aug 28, 12:45 AM
Unknown Object (File)
Wed, Aug 26, 4:16 AM
Unknown Object (File)
Wed, Aug 26, 4:16 AM
Subscribers

Details

Summary

pfctl_do_ioctl() copies the packed request data into the request buffer
and then frees it. However, it's possible for the buffer to be too small
for the reply, causing us to allocate a new buffer. We then copied from
the freed request, and freed it again.

Do not free the request buffer until we're all the way done.

PR: 274614
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC ("Netgate")

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 54130
Build 51020: arc lint + arc unit