Bug 1810146

Summary: glibc: getaddrinfo: Fix resource leak after strdup failure in gethosts [BZ #25425]
Product: Red Hat Enterprise Linux 8 Reporter: Carlos O'Donell <codonell>
Component: glibcAssignee: Carlos O'Donell <codonell>
Status: CLOSED ERRATA QA Contact: qe-baseos-tools-bugs
Severity: unspecified Docs Contact: Zuzana Zoubkova <zzoubkov>
Priority: unspecified    
Version: 8.3CC: ashankar, codonell, dj, fweimer, lmanasko, mnewsome, pfrankli, sipoyare, skolosov
Target Milestone: rcKeywords: Patch, Triaged
Target Release: 8.3   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glibc-2.28-112.el8 Doc Type: Bug Fix
Doc Text:
.`getaddrinfo` now correctly handles a memory allocation failure Previously, after a memory allocation failure, the `getaddrinfo` function of the GNU C Library `glibc` did not release the internal resolver context. As a consequence, `getaddrinfo` was not able to reload the `/etc/resolv.conf` file for the rest of the lifetime of the calling thread, resulting in a possible memory leak. This update modifies the error handling path with an additional release operation for the resolver context. As a result, `getaddrinfo` reloads `/etc/resolv.conf` with new configuration values even after an intermittent memory allocation failure.
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-11-04 01:33:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1819986    
Bug Blocks:    

Description Carlos O'Donell 2020-03-04 15:43:14 UTC
There is a resource leak in gethosts after a strdup failure. We should fix this.

No extra test provided. To verify this you have to trigger the strdup failure manually and observe the resource leaks.

https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=8b222fa38700422b4da6731806835f0bbf40920d

commit 8b222fa38700422b4da6731806835f0bbf40920d
Author: Florian Weimer <fweimer>
Date:   Mon Jan 20 18:37:13 2020 +0100

    getaddrinfo: Fix resource leak after strdup failure in gethosts [BZ #25425]
    
    Filip Ochnik spotted that one of the error jumps in gethosts fails to
    call __resolv_context_put to release the resolver context.
    
    Fixes commit 352f4ff9a268b81ef5d4b2413f582565806e4790 ("resolv:
    Introduce struct resolv_context [BZ #21668]") and commit
    964263bb8d650f1681665c55704fb01a8e725621 ("getaddrinfo: Release
    resolver context on error in gethosts [BZ #21885]").
    
    Reviewed-by: Siddhesh Poyarekar <siddhesh>

Comment 9 errata-xmlrpc 2020-11-04 01:33:21 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: glibc security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2020:4444