Mercurial > hg > nginx
changeset 1955:466fdc84c82d
use dynamically allocated buffer in ngx_sort()
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 23 Mar 2008 19:58:54 +0000 |
parents | d85e291b99f9 |
children | cb8c0c8e0c27 |
files | src/core/ngx_string.c |
diffstat | 1 files changed, 11 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/core/ngx_string.c Sun Mar 23 15:42:40 2008 +0000 +++ b/src/core/ngx_string.c Sun Mar 23 19:58:54 2008 +0000 @@ -1432,24 +1432,30 @@ ngx_sort(void *base, size_t n, size_t size, int (*cmp)(const void *, const void *)) { - u_char *p1, *p2; - u_char buf[256]; + u_char *p1, *p2, *p; + + p = ngx_alloc(size, ngx_cycle->log); + if (p == NULL) { + return; + } for (p1 = (u_char *) base + size; p1 < (u_char *) base + n * size; p1 += size) { - ngx_memcpy(buf, p1, size); + ngx_memcpy(p, p1, size); for (p2 = p1; - p2 > (u_char *) base && cmp(p2 - size, buf) > 0; + p2 > (u_char *) base && cmp(p2 - size, p) > 0; p2 -= size) { ngx_memcpy(p2, p2 - size, size); } - ngx_memcpy(p2, buf, size); + ngx_memcpy(p2, p, size); } + + ngx_free(p); }