[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] Mes C Library: stdlib/qsort.c: fix qswap segfault
From: |
Paul Dersey |
Subject: |
[PATCH] Mes C Library: stdlib/qsort.c: fix qswap segfault |
Date: |
Fri, 22 Jan 2021 10:56:36 -0500 |
* stdlib/qsort.c: Remove hard coded buffer size in qswap(). Allow
swapping of objects of arbitrary size.
---
lib/stdlib/qsort.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/lib/stdlib/qsort.c b/lib/stdlib/qsort.c
index 4f3e61cb..e0797376 100644
--- a/lib/stdlib/qsort.c
+++ b/lib/stdlib/qsort.c
@@ -24,10 +24,14 @@
void
qswap (void *a, void *b, size_t size)
{
- char *buf[8];
- memcpy (buf, a, size);
- memcpy (a, b, size);
- memcpy (b, buf, size);
+ char *pa = a;
+ char *pb = b;
+ do
+ {
+ char tmp = *pa;
+ *pa++ = *pb;
+ *pb++ = tmp;
+ } while (--size > 0);
}
size_t
--
2.30.0
- [PATCH] Mes C Library: stdlib/qsort.c: fix qswap segfault,
Paul Dersey <=