Use sd_json_variant_is_blank_array() instead of is_blank_object() for p.addresses and p.names, which are declared as JSON arrays. The wrong predicate never triggered, allowing empty arrays to bypass the guards: for p.names this caused a size_t underflow leading to an out-of-bounds heap write; for p.addresses it returned success with no addresses. Add explicit n_addresses == 0 guards after the family-filter loops so entries with unsupported families also return NOTFOUND rather than crashing on a NULL dereference. In gethostbyname3_r (family-specific entry point), return NO_DATA for all zero-address results — both blank array and all-filtered — since both mean "name resolved, no record of the requested family". Keep HOST_NOT_FOUND in gethostbyname4_r (both-families) where a blank or all-unsupported result genuinely means the name was not found. Signed-off-by: dongshengyuan <dongshengyuan@uniontech.com> Co-developed-by: Claude Opus 4.8 <noreply@anthropic.com>
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS, and also repositories with packages built from the latest stable release
