mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 00:32:25 -04:00
mixer: Fix a bogus free() call in the main loop
After a strsep() call, p might not point at the original allocation
anymore.
Reported by: CHERI
Reviewed by: christos
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D47266
(cherry picked from commit c22be0b181)
This commit is contained in:
parent
90d8c39d22
commit
bf2145f361
1 changed files with 4 additions and 2 deletions
|
|
@ -147,7 +147,9 @@ main(int argc, char *argv[])
|
|||
|
||||
parse:
|
||||
while (argc > 0) {
|
||||
if ((p = strdup(*argv)) == NULL)
|
||||
char *orig;
|
||||
|
||||
if ((orig = p = strdup(*argv)) == NULL)
|
||||
err(1, "strdup(%s)", *argv);
|
||||
|
||||
/* Check if we're using the shorthand syntax for volume setting. */
|
||||
|
|
@ -200,7 +202,7 @@ parse:
|
|||
/* Input: `dev.control=val`. */
|
||||
cp->mod(cp->parent_dev, valstr);
|
||||
next:
|
||||
free(p);
|
||||
free(orig);
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue