aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram <bug_rh@spam.wizbit.be>2013-04-18 16:50:49 +0200
committerAllan McRae <allan@archlinux.org>2015-01-25 15:12:10 +1000
commit9317ea653afc26402387cac67042f9890af6add2 (patch)
treebaff3493a2fc6472db20b8cd5fad7c2612e81b01
parentbea58013607c6507108bc73744a0bf63d735f259 (diff)
downloadglibc-9317ea653afc26402387cac67042f9890af6add2.zip
glibc-9317ea653afc26402387cac67042f9890af6add2.tar.gz
glibc-9317ea653afc26402387cac67042f9890af6add2.tar.bz2
Fix segmentation fault when LD_LIBRARY_PATH contains only non-existings paths
-rw-r--r--ChangeLog6
-rw-r--r--NEWS18
-rw-r--r--elf/dl-load.c6
3 files changed, 18 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 3c5ed3c..951aa27 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-01-25 Bram <bug_rh@spam.wizbit.be>
+
+ [BZ #15378]
+ * elf/dl-load.c (open_path): Avoid writing to 'env_path_list'
+ when none of the search directories exist.
+
2015-01-24 Adhemerval Zanellla <azanella@linux.vnet.ibm.com>
[BZ #17869]
diff --git a/NEWS b/NEWS
index 5ca959e..36b369f 100644
--- a/NEWS
+++ b/NEWS
@@ -10,15 +10,15 @@ Version 2.21
* The following bugs are resolved with this release:
6652, 10672, 12674, 12847, 12926, 13862, 14132, 14138, 14171, 14498,
- 15215, 15884, 16009, 16418, 16191, 16469, 16617, 16619, 16657, 16740,
- 16857, 17192, 17266, 17273, 17344, 17363, 17370, 17371, 17411, 17460,
- 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572,
- 17573, 17574, 17582, 17583, 17584, 17585, 17589, 17594, 17601, 17608,
- 17616, 17625, 17630, 17633, 17634, 17635, 17647, 17653, 17657, 17658,
- 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722, 17723, 17724,
- 17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748, 17775, 17777,
- 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17803, 17806, 17834,
- 17844, 17848, 17868, 17869, 17870
+ 15215, 15378, 15884, 16009, 16418, 16191, 16469, 16617, 16619, 16657,
+ 16740, 16857, 17192, 17266, 17273, 17344, 17363, 17370, 17371, 17411,
+ 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571,
+ 17572, 17573, 17574, 17582, 17583, 17584, 17585, 17589, 17594, 17601,
+ 17608, 17616, 17625, 17630, 17633, 17634, 17635, 17647, 17653, 17657,
+ 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722, 17723,
+ 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748, 17775,
+ 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17803, 17806,
+ 17834, 17844, 17848, 17868, 17869, 17870
* A new semaphore algorithm has been implemented in generic C code for all
machines. Previous custom assembly implementations of semaphore were
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 73174aa..41b91fc 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1889,9 +1889,9 @@ open_path (const char *name, size_t namelen, int mode,
if (sps->malloced)
free (sps->dirs);
- /* rtld_search_dirs is attribute_relro, therefore avoid writing
- into it. */
- if (sps != &rtld_search_dirs)
+ /* rtld_search_dirs and env_path_list are attribute_relro, therefore
+ avoid writing into it. */
+ if (sps != &rtld_search_dirs && sps != &env_path_list)
sps->dirs = (void *) -1;
}