Page MenuHomeFreeBSD

D31638.1793432659.diff
No OneTemporary

Authored By
Unknown
Size
813 B
Referenced Files
None
Subscribers
None

D31638.1793432659.diff

diff --git a/lib/libc/string/swab.c b/lib/libc/string/swab.c
--- a/lib/libc/string/swab.c
+++ b/lib/libc/string/swab.c
@@ -43,20 +43,20 @@
void
swab(const void * __restrict from, void * __restrict to, ssize_t len)
{
- unsigned long temp;
- int n;
- char *fp, *tp;
+ unsigned char temp;
+ const unsigned char *fp;
+ unsigned char *tp;
- if (len <= 0)
+ if (len < 2) // needs to be at least 2 to work
return;
- n = len >> 1;
- fp = (char *)from;
- tp = (char *)to;
+ len >>= 1;
+ fp = (const unsigned char *)from;
+ tp = (unsigned char *)to;
#define STEP temp = *fp++,*tp++ = *fp++,*tp++ = temp
/* round to multiple of 8 */
- for (; n & 0x7; --n)
+ for (; len & 0x7; --len)
STEP;
- for (n >>= 3; n > 0; --n) {
+ for (len >>= 3; len; --len) {
STEP; STEP; STEP; STEP;
STEP; STEP; STEP; STEP;
}

File Metadata

Mime Type
text/plain
Expires
Sat, Oct 31, 7:44 AM (31 m, 23 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
41256573
Default Alt Text
D31638.1793432659.diff (813 B)

Event Timeline