Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Mar 2018 03:00:24 +0000 (UTC)
From:      Eitan Adler <eadler@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r331084 - stable/11/bin/dd
Message-ID:  <201803170300.w2H30OLP017783@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: eadler
Date: Sat Mar 17 03:00:24 2018
New Revision: 331084
URL: https://svnweb.freebsd.org/changeset/base/331084

Log:
  MFC r328427:
  
  dd(1): Use a local swapbytes() function.
  
  swab(3) has restrict qualifiers for src and dst.
  Avoid relying on undefined overlapping swab behavior.
  
  Obtained From: OpenBSD

Modified:
  stable/11/bin/dd/dd.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/bin/dd/dd.c
==============================================================================
--- stable/11/bin/dd/dd.c	Sat Mar 17 01:48:27 2018	(r331083)
+++ stable/11/bin/dd/dd.c	Sat Mar 17 03:00:24 2018	(r331084)
@@ -303,6 +303,21 @@ speed_limit(void)
 }
 
 static void
+swapbytes(void *v, size_t len)
+{
+	unsigned char *p = v;
+	unsigned char t;
+
+	while (len > 1) {
+		t = p[0];
+		p[0] = p[1];
+		p[1] = t;
+		p += 2;
+		len -= 2;
+	}
+}
+
+static void
 dd_in(void)
 {
 	ssize_t n;
@@ -402,7 +417,7 @@ dd_in(void)
 				++st.swab;
 				--n;
 			}
-			swab(in.dbp, in.dbp, (size_t)n);
+			swapbytes(in.dbp, (size_t)n);
 		}
 
 		in.dbp += in.dbrcnt;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201803170300.w2H30OLP017783>