]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
pf: use inet_ntoa_r() instead of inet_ntoa(); maybe fix IPv6 OS fingerprinting
authorvangyzen <vangyzen@FreeBSD.org>
Thu, 16 Feb 2017 20:44:44 +0000 (20:44 +0000)
committervangyzen <vangyzen@FreeBSD.org>
Thu, 16 Feb 2017 20:44:44 +0000 (20:44 +0000)
commit86d62a299ab5a591ccee8da6de0cdd8fccc84070
treeda1d5af5cb5a03b9a9d7c70a4a31bb9b51bd82be
parentb6f2f57efd950a99d21253cc3c8376cc7ae7590a
pf: use inet_ntoa_r() instead of inet_ntoa(); maybe fix IPv6 OS fingerprinting

inet_ntoa() cannot be used safely in a multithreaded environment
because it uses a static local buffer. Instead, use inet_ntoa_r()
with a buffer on the caller's stack.

This code had an INET6 conditional before this commit, but opt_inet6.h
was not included, so INET6 was never defined.  Apparently, pf's OS
fingerprinting hasn't worked with IPv6 for quite some time.
This commit might fix it, but I didn't test that.

Reviewed by: gnn, kp
MFC after: 2 weeks
Relnotes: yes (if I/someone can test pf OS fingerprinting with IPv6)
Sponsored by: Dell EMC
Differential Revision: https://reviews.freebsd.org/D9625
sys/netpfil/pf/pf_osfp.c