diff options
| author | Brooks Davis <brooks@FreeBSD.org> | 2026-01-23 10:35:55 +0000 |
|---|---|---|
| committer | Brooks Davis <brooks@FreeBSD.org> | 2026-01-23 10:35:55 +0000 |
| commit | e17d7ab869bbfe3fa5a7da4b74d9f4fa51a0d69f (patch) | |
| tree | d763e48cca4c9fd09eeae156ea6902634e8a10c1 /usr.bin/rwall/(developers-only) | |
| parent | ac5a19ec6989675c8ec6c3ca245dba243d1a6416 (diff) | |
Historically (and in a small amount of older software such as OpenAFS),
developers would attempt to free XDR strings with
xdr_free((xdrproc_t)xdr_string, &string)
This resulted in xdr_free calling xdr_string with only two intentional
arguments and whatever was left in the third argument register. If the
register held a sufficently small number, xdr_string would return FALSE
and not free the string (no one checks the return values).
Software should instead free strings with:
xdr_free((xdrproc_t)xdr_wrapstring, &string)
Because buggy software exists in the wild, act as though xdr_wrapstring
was used in the XDR_FREE case and plug these leaks.
Reviewed by: kib
MFC after: 3 days
Effort: CHERI upstreaming
Sponsored by: Innovate UK
Differential Revision: https://reviews.freebsd.org/D54825
Diffstat (limited to 'usr.bin/rwall/(developers-only)')
0 files changed, 0 insertions, 0 deletions
