aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEitan Adler <eadler@FreeBSD.org>2012-03-04 16:39:08 +0000
committerEitan Adler <eadler@FreeBSD.org>2012-03-04 16:39:08 +0000
commit0a0c8e010d4672cfeb0b980d7c23846e8744d2d3 (patch)
tree866b9ecf086f1897f52a6808bdbf7e84a625cea3 /lib
parentc0f0c9848e3ff0c7fb25d1e79461f2efe8fd8e85 (diff)
downloadsrc-0a0c8e010d4672cfeb0b980d7c23846e8744d2d3.tar.gz
src-0a0c8e010d4672cfeb0b980d7c23846e8744d2d3.zip
POSIX mandates that swab do nothing when len < 0
PR: kern/140690 Submitted by: Jeremy Huddleston <jeremyhu@apple.com> Approved by: cperciva MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=232503
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/string/swab.35
-rw-r--r--lib/libc/string/swab.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/libc/string/swab.3 b/lib/libc/string/swab.3
index f8ef34ee3f3b..0c9deea8463b 100644
--- a/lib/libc/string/swab.3
+++ b/lib/libc/string/swab.3
@@ -28,7 +28,7 @@
.\" @(#)swab.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
-.Dd December 10, 2004
+.Dd March 4, 2012
.Dt SWAB 3
.Os
.Sh NAME
@@ -54,6 +54,9 @@ swapping adjacent bytes.
The argument
.Fa len
must be an even number.
+If
+.Fa len
+is less than zero, nothing will be done.
.Sh SEE ALSO
.Xr bzero 3 ,
.Xr memset 3
diff --git a/lib/libc/string/swab.c b/lib/libc/string/swab.c
index 1db7d1fab00b..ec6cbf0f536f 100644
--- a/lib/libc/string/swab.c
+++ b/lib/libc/string/swab.c
@@ -45,6 +45,8 @@ swab(const void * __restrict from, void * __restrict to, ssize_t len)
int n;
char *fp, *tp;
+ if (len <= 0)
+ return;
n = len >> 1;
fp = (char *)from;
tp = (char *)to;