git: 7a9378856ae0 - stable/15 - kern_jail_set(): do not double-free opts
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 09 Nov 2025 00:36:22 UTC
The branch stable/15 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=7a9378856ae0b20e4d7330ab67cf02880db69afe
commit 7a9378856ae0b20e4d7330ab67cf02880db69afe
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-11-06 05:50:42 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-11-09 00:35:52 +0000
kern_jail_set(): do not double-free opts
(cherry picked from commit 3f5f52216f7e583aeb5580b13ba0f87e29d1ee43)
---
sys/kern/kern_jail.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c
index 523b7e314a10..26a994ef0c32 100644
--- a/sys/kern/kern_jail.c
+++ b/sys/kern/kern_jail.c
@@ -1065,8 +1065,10 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags)
* than duplicate it under a different name.
*/
error = vfs_buildopts(optuio, &opts);
- if (error)
+ if (error) {
+ opts = NULL;
goto done_free;
+ }
cuflags = flags & (JAIL_CREATE | JAIL_UPDATE);
if (!cuflags) {
@@ -2331,7 +2333,8 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags)
(void)kern_close(td, jfd_out);
if (g_path != NULL)
free(g_path, M_TEMP);
- vfs_freeopts(opts);
+ if (opts != NULL)
+ vfs_freeopts(opts);
prison_free(mypr);
return (error);
}