From 27233446a62ca35ce0b54566279a99a6774d4210 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Wed, 6 Sep 2017 15:47:27 +0200 Subject: [PATCH 31] resolv: __resolv_conf_attach must not free passed conf object [BZ #22096] (cherry picked from commit a83047308196e3e54716a39dd85c0a08b198d6bd) --- ChangeLog | 6 ++++++ NEWS | 1 + resolv/resolv_conf.c | 5 +---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index ef2041b9e5..e98a4bbf3c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2017-09-06 Florian Weimer + [BZ #22096] + * resolv/resolv_conf.c (__resolv_conf_attach): Do not free conf in + case of failure to obtain the global conf object. + +2017-09-06 Florian Weimer + [BZ #22095] * resolv/res_init.c (res_vinit_1): Avoid memory leak in case of dynarray allocation failure. diff --git a/NEWS b/NEWS index 62959274b3..9bcb176171 100644 --- a/NEWS +++ b/NEWS @@ -29,6 +29,7 @@ The following bugs are resolved with this release: [21941] powerpc: Restrict xssqrtqp operands to Vector Registers [21972] assert macro requires operator== (int) for its argument type [22095] resolv: Fix memory leak with OOM during resolv.conf parsing + [22096] resolv: __resolv_conf_attach must not free passed conf object Version 2.26 diff --git a/resolv/resolv_conf.c b/resolv/resolv_conf.c index f391d30c27..e0f296d02e 100644 --- a/resolv/resolv_conf.c +++ b/resolv/resolv_conf.c @@ -600,10 +600,7 @@ __resolv_conf_attach (struct __res_state *resp, struct resolv_conf *conf) struct resolv_conf_global *global_copy = get_locked_global (); if (global_copy == NULL) - { - free (conf); - return false; - } + return false; /* Try to find an unused index in the array. */ size_t index;