59 lines
1.8 KiB
Diff
59 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;
|
|||
|
|