https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224552

            Bug ID: 224552
           Summary: 'od -c' show wrong char when it is a non-printable
           Product: Base System
           Version: 11.1-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: pru13al...@telia.com

The command 'od -c' show the wrong last character on each line if it is a
non-printable in the current language (LANG)

Tested with LANG=sv_SE.UTF-8 on:

FreeBSD fsbd1 10.3-RELEASE-p24 FreeBSD 10.3-RELEASE-p24 #0: Wed Nov 15 04:57:40
UTC 2017
 r...@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64

FreeBSD fbsd2 11.1-RELEASE-p4 FreeBSD 11.1-RELEASE-p4 #0: Tue Nov 14 06:05:10
UTC 2017
 r...@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386

FreeBSD rpi1 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r320146M: Tue Jun 20 09:59:03
MDT 2017

raspbe...@hive.raspbsd.org:/usr/home/brd/rpi3/crochet/work/obj/arm64.aarch64/usr/src/sys/GENERIC
 arm64

Steps to reproduce:

This is OK
[root]# printf 'abcde\345\344\366\374\351\305\304\326\334\311\n' | od -c
0000000    a   b   c   d   e 345 344 366 374 351 305 304 326 334 311  \n

When the string gets longer and 'od' start a new line the last octet get
scrambled.
The '012' should be '311':
[root]# printf 'Xabcde\345\344\366\374\351\305\304\326\334\311\n' | od -c
0000000    X   a   b   c   d   e 345 344 366 374 351 305 304 326 334 012
0000020   \n                                                            

When the string get even longer it is obvious that 'od' is copying first char
on
second line to last char on first line:
(Last char on first line ('311') should be '334')
[root]# printf 'XYabcde\345\344\366\374\351\305\304\326\334\311\n' | od -c
0000000    X   Y   a   b   c   d   e 345 344 366 374 351 305 304 326 311
0000020  311  \n

If you are on a system other than UTF-8 you can get the same symptoms by
specifying LC_ALL:
printf 'XYabcde\345\344\366\374\351\305\304\326\334\311\n' | LC_ALL=en_US.UTF-8
od -c

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to