a165603d24
Currently od_bloaty does this: $ /bin/echo -en '\x00\x00\x00\x00\x00\x00\x00\x00' | busybox od -f od: invalid character 'F' in type string 'fF' $ /bin/echo -en '\x00\x00\x00\x00\x00\x00\x00\x00' | busybox od -t fD od: invalid character 'D' in type string 'fD' $ /bin/echo -en '\x00\x00\x00\x00\x00\x00\x00\x00' | busybox od -t f 0000000 0000010 The first two occur because the alphabetic length specifier isn't being properly skipped. The third is due to the empty length specifier being treated as alphabetic so we fall off the end of the FDL_sizeof array with undetermined consequences. Coreutils defaults to printing a double in this case. With this patch the output is: $ /bin/echo -en '\x00\x00\x00\x00\x00\x00\x00\x00' | ./busybox od -f 0000000 0.0000000e+00 0.0000000e+00 0000010 $ /bin/echo -en '\x00\x00\x00\x00\x00\x00\x00\x00' | ./busybox od -t fD 0000000 0.000000000000000e+00 0000010 $ /bin/echo -en '\x00\x00\x00\x00\x00\x00\x00\x00' | ./busybox od -t f 0000000 0.000000000000000e+00 0000010 I guess nobody uses BusyBox od to print floating point numbers. Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
50 lines
771 B
Bash
Executable File
50 lines
771 B
Bash
Executable File
#!/bin/sh
|
|
# Copyright 2008 by Denys Vlasenko
|
|
# Licensed under GPLv2, see file LICENSE in this source tree.
|
|
|
|
. ./testing.sh
|
|
|
|
# testing "test name" "commands" "expected result" "file input" "stdin"
|
|
|
|
optional DESKTOP
|
|
testing "od -b" \
|
|
"od -b" \
|
|
"\
|
|
0000000 110 105 114 114 117
|
|
0000005
|
|
" \
|
|
"" "HELLO"
|
|
SKIP=
|
|
|
|
optional DESKTOP
|
|
testing "od -f" \
|
|
"od -f" \
|
|
"\
|
|
0000000 0.0000000e+00 0.0000000e+00
|
|
0000010
|
|
" \
|
|
"" "\x00\x00\x00\x00\x00\x00\x00\x00"
|
|
SKIP=
|
|
|
|
optional DESKTOP LONG_OPTS
|
|
testing "od -b --traditional" \
|
|
"od -b --traditional" \
|
|
"\
|
|
0000000 110 105 114 114 117
|
|
0000005
|
|
" \
|
|
"" "HELLO"
|
|
SKIP=
|
|
|
|
optional DESKTOP LONG_OPTS
|
|
testing "od -b --traditional FILE" \
|
|
"od -b --traditional input" \
|
|
"\
|
|
0000000 110 105 114 114 117
|
|
0000005
|
|
" \
|
|
"HELLO" ""
|
|
SKIP=
|
|
|
|
exit $FAILCOUNT
|