58 lines
1.8 KiB
Diff
58 lines
1.8 KiB
Diff
From 27233446a62ca35ce0b54566279a99a6774d4210 Mon Sep 17 00:00:00 2001
|
||
From: Florian Weimer <fweimer@redhat.com>
|
||
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 <fweimer@redhat.com>
|
||
|
||
+ [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 <fweimer@redhat.com>
|
||
+
|
||
[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;
|
||
|