[Bug 274614] Issues with retry loop in pfctl_do_ioctl()

0 views
Skip to first unread message

bugzilla...@freebsd.org

unread,
Oct 20, 2023, 1:37:03 PM10/20/23
to p...@freebsd.org
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274614

Mark Linimon <lin...@FreeBSD.org> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |p...@FreeBSD.org
Flags| |maintainer-feedback?(pf@Fre
| |eBSD.org)
Assignee|bu...@FreeBSD.org |p...@FreeBSD.org

--
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.

bugzilla...@freebsd.org

unread,
Oct 24, 2023, 5:34:29 AM10/24/23
to p...@freebsd.org
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274614

--- Comment #1 from commi...@FreeBSD.org ---
A commit in branch main references this bug:

URL:
https://cgit.FreeBSD.org/src/commit/?id=2cffb52514b070e716e700c7f58fdb8cd9b05335

commit 2cffb52514b070e716e700c7f58fdb8cd9b05335
Author: Kristof Provost <k...@FreeBSD.org>
AuthorDate: 2023-10-23 11:43:52 +0000
Commit: Kristof Provost <k...@FreeBSD.org>
CommitDate: 2023-10-24 07:50:31 +0000

libpfctl: fix pfctl_do_ioctl()

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
Reviewed by: emaste
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D42329

lib/libpfctl/libpfctl.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

--
You are receiving this mail because:

bugzilla...@freebsd.org

unread,
Nov 1, 2023, 5:06:54 AM11/1/23
to p...@freebsd.org
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274614

--- Comment #2 from commi...@FreeBSD.org ---
A commit in branch stable/14 references this bug:

URL:
https://cgit.FreeBSD.org/src/commit/?id=9f5ab6bddfc0974b385f2a198878f739424fd040

commit 9f5ab6bddfc0974b385f2a198878f739424fd040
Author: Kristof Provost <k...@FreeBSD.org>
AuthorDate: 2023-10-23 11:43:52 +0000
Commit: Kristof Provost <k...@FreeBSD.org>
CommitDate: 2023-11-01 09:05:49 +0000

libpfctl: fix pfctl_do_ioctl()

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
Reviewed by: emaste
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D42329

(cherry picked from commit 2cffb52514b070e716e700c7f58fdb8cd9b05335)

bugzilla...@freebsd.org

unread,
Nov 1, 2023, 5:06:54 AM11/1/23
to p...@freebsd.org
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274614

--- Comment #3 from commi...@FreeBSD.org ---
A commit in branch stable/13 references this bug:

URL:
https://cgit.FreeBSD.org/src/commit/?id=a17aa2314d5078060417cbfba30b20088359ec21

commit a17aa2314d5078060417cbfba30b20088359ec21
Author: Kristof Provost <k...@FreeBSD.org>
AuthorDate: 2023-10-23 11:43:52 +0000
Commit: Kristof Provost <k...@FreeBSD.org>
CommitDate: 2023-10-31 08:08:46 +0000

libpfctl: fix pfctl_do_ioctl()

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
Reviewed by: emaste
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D42329

(cherry picked from commit 2cffb52514b070e716e700c7f58fdb8cd9b05335)

lib/libpfctl/libpfctl.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

--
You are receiving this mail because:
Reply all
Reply to author
Forward
0 new messages