summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authordas <das@FreeBSD.org>2008-01-13 02:11:10 +0000
committerdas <das@FreeBSD.org>2008-01-13 02:11:10 +0000
commit1daf1db8d416545ee59097baf8375ff49de4bfce (patch)
tree8ab753cca46bb4886744da1c76766f12410a0f88 /lib
parenta440b7cce737193f955f2a95a2915af773f05d03 (diff)
downloadFreeBSD-src-1daf1db8d416545ee59097baf8375ff49de4bfce.zip
FreeBSD-src-1daf1db8d416545ee59097baf8375ff49de4bfce.tar.gz
Use size_t to avoid overflow when sorting arrays larger than 2 GB.
PR: 111085 MFC after: 2 weeks
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/stdlib/heapsort.c2
-rw-r--r--lib/libc/stdlib/qsort.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/libc/stdlib/heapsort.c b/lib/libc/stdlib/heapsort.c
index 135c48b..f656876 100644
--- a/lib/libc/stdlib/heapsort.c
+++ b/lib/libc/stdlib/heapsort.c
@@ -141,7 +141,7 @@ heapsort(vbase, nmemb, size, compar)
size_t nmemb, size;
int (*compar)(const void *, const void *);
{
- int cnt, i, j, l;
+ size_t cnt, i, j, l;
char tmp, *tmp1, *tmp2;
char *base, *k, *p, *t;
diff --git a/lib/libc/stdlib/qsort.c b/lib/libc/stdlib/qsort.c
index 65e038c..0958cd3 100644
--- a/lib/libc/stdlib/qsort.c
+++ b/lib/libc/stdlib/qsort.c
@@ -111,7 +111,8 @@ qsort(void *a, size_t n, size_t es, cmp_t *cmp)
#endif
{
char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
- int d, r, swaptype, swap_cnt;
+ size_t d, r;
+ int swaptype, swap_cnt;
loop: SWAPINIT(a, es);
swap_cnt = 0;
OpenPOWER on IntegriCloud