Mes C Library: stdlib/qsort.c: Fix qswap segfault.

* stdlib/qsort.c (qswap): Remove hard coded buffer size.  Allow
swapping of objects of arbitrary size.
This commit is contained in:
Paul Dersey 2021-01-22 10:56:36 -05:00 committed by Jan (janneke) Nieuwenhuizen
parent d3a039949b
commit 4492173466
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
1 changed files with 9 additions and 4 deletions

View File

@ -1,6 +1,7 @@
/* -*-comment-start: "//";comment-end:""-*-
* GNU Mes --- Maxwell Equations of Software
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
* Copyright © 2021 Paul Dersey <pdersey@gmail.com>
*
* This file is part of GNU Mes.
*
@ -24,10 +25,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