aboutsummaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorLeonhard Holz <leonhard.holz@web.de>2015-01-13 11:33:56 +0530
committerTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>2015-12-31 12:48:27 -0200
commitb057b4813c9f05c3cedff0c74b58c9c9d583f09f (patch)
treec602babbdc550c023fe258ef35cc302814486aa8 /NEWS
parent325241608584653c1275a2ea28ce349a04fc4d28 (diff)
downloadglibc-b057b4813c9f05c3cedff0c74b58c9c9d583f09f.zip
glibc-b057b4813c9f05c3cedff0c74b58c9c9d583f09f.tar.gz
glibc-b057b4813c9f05c3cedff0c74b58c9c9d583f09f.tar.bz2
Fix memory handling in strxfrm_l [BZ #16009]
[Modified from the original email by Siddhesh Poyarekar] This patch solves bug #16009 by implementing an additional path in strxfrm that does not depend on caching the weight and rule indices. In detail the following changed: * The old main loop was factored out of strxfrm_l into the function do_xfrm_cached to be able to alternativly use the non-caching version do_xfrm. * strxfrm_l allocates a a fixed size array on the stack. If this is not sufficiant to store the weight and rule indices, the non-caching path is taken. As the cache size is not dependent on the input there can be no problems with integer overflows or stack allocations greater than __MAX_ALLOCA_CUTOFF. Note that malloc-ing is not possible because the definition of strxfrm does not allow an oom errorhandling. * The uncached path determines the weight and rule index for every char and for every pass again. * Passing all the locale data array by array resulted in very long parameter lists, so I introduced a structure that holds them. * Checking for zero src string has been moved a bit upwards, it is before the locale data initialization now. * To verify that the non-caching path works correct I added a test run to localedata/sort-test.sh & localedata/xfrm-test.c where all strings are patched up with spaces so that they are too large for the caching path. (cherry picked from commit 0f9e585480edcdf1e30dc3d79e24b84aeee516fa) Conflicts: NEWS string/strxfrm_l.c
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS4
1 files changed, 2 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 0196d04..68d5a44 100644
--- a/NEWS
+++ b/NEWS
@@ -9,8 +9,8 @@ Version 2.18.1
* The following bugs are resolved with this release:
- 15073, 15128, 15909, 15996, 16150, 16169, 16387, 16510, 16885, 16916,
- 16943, 16958, 17269, 18032, 18928, 19018.
+ 15073, 15128, 15909, 15996, 16009, 16150, 16169, 16387, 16510, 16885,
+ 16916, 16943, 16958, 17269, 18032, 18928, 19018.
* The LD_POINTER_GUARD environment variable can no longer be used to
disable the pointer guard feature. It is always enabled.