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;
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to