diff options
author | Andrew Walker <walker.aj325_gmail.com> | 2021-04-20 19:34:44 +0000 |
---|---|---|
committer | Ryan Moeller <freqlabs@FreeBSD.org> | 2021-04-23 10:43:51 +0000 |
commit | 550fcd830db7e8d644795e5fc9bd83ef4604a1c1 (patch) | |
tree | 681f858c103eec2a602379241fb7e3a04b380bb6 | |
parent | f974af4e59ee533906437b22a5b8b41219bde005 (diff) | |
download | src-550fcd830db7e8d644795e5fc9bd83ef4604a1c1.tar.gz src-550fcd830db7e8d644795e5fc9bd83ef4604a1c1.zip |
Fix leak in libc NFSv4 ACL flags parsing
Free memory allocated by strdup() in parse_flags_verbose().
Submitted by: Andrew Walker <walker.aj325_gmail.com>
Reported by: valgrind
Reviewed by: allanjude, freqlabs, rpokala
Sponsored by: iXsystems, Inc.
Differential Revision: https://reviews.freebsd.org/D29871
(cherry picked from commit dd559118ab3f065ae230b324c3fe4bb1c9b7ca56)
-rw-r--r-- | lib/libc/posix1e/acl_support_nfs4.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/libc/posix1e/acl_support_nfs4.c b/lib/libc/posix1e/acl_support_nfs4.c index 7dd7f04daaf3..ffed4446c1b2 100644 --- a/lib/libc/posix1e/acl_support_nfs4.c +++ b/lib/libc/posix1e/acl_support_nfs4.c @@ -141,9 +141,10 @@ parse_flags_verbose(const char *strp, uint32_t *var, int *try_compact) { int i, found, ever_found = 0; - char *str, *flag; + char *str, *flag, *to_free; str = strdup(strp); + to_free = str; *try_compact = 0; *var = 0; @@ -165,12 +166,12 @@ parse_flags_verbose(const char *strp, uint32_t *var, "invalid flag \"%s\"", flags_name, flag); else *try_compact = 1; - free(str); + free(to_free); return (-1); } } - free(str); + free(to_free); return (0); } |