bug-mes
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]