Age | Commit message (Collapse) | Author |
|
clang is fine with the noreturn nature of error_exit, but only if we don't
`if (false)` it out for non-debug builds.
lib/args.c:304:18: error: variable 'temp' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
} else if (CFG_TOYBOX_FLOAT && new->type == '.') {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/toybox/generated/config.h:11:26: note: expanded from macro 'CFG_TOYBOX_FLOAT'
^
external/toybox/lib/args.c:308:19: note: uninitialized use occurs here
options = --temp;
^~~~
external/toybox/lib/args.c:304:14: note: remove the 'if' if its condition is always true
} else if (CFG_TOYBOX_FLOAT && new->type == '.') {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/toybox/lib/args.c:255:15: note: initialize the variable 'temp' to silence this warning
char *temp;
^
= NULL
|
|
|
|
Inline #define bcg TT (from generated/globals.h)
Inline BC_FLAG with FLAG_ values from generated/flags.h.
Replace BC_MAX() and BC_MIN() with maxof() and minof() from
Inline BC_INVALID_IDX (it's used twice and doesn't need a typecast).
Inline bc_func_insertParam() and bc_func_insertAuto() (each is used once).
|
|
Coding style: declarations go at the start of blocks.
|
|
|
|
Found by the compiler, not me:
lib/lib.c:1053:30: warning: 'st2.st_dev' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (st1.st_dev != st2.st_dev || st1.st_ino != st2.st_ino) continue;
~~~^~~~~~~
|
|
|
|
|
|
|
|
Bug: 74390492
|
|
|
|
|
|
|
|
but then the link fails.
|
|
|
|
(Otherwise updating pid to parents makes threads read thread parent data.)
|
|
The first contains display fields selectable by the -o argument,
the second contains the /proc/$PID data for one process.
|
|
If we have a 15-byte name, we don't know whether comm actually matches
or is a truncated form of a longer name that has a common prefix.
For example, with "this-is-a-very-long-name-that-is-too-long", we shouldn't
match "this-is-a-very-" (but the old code would).
The cmdline code was also broken on Android because it used basename(3)
rather than getbasename. This doesn't affect glibc because there's a
workaround in portability.h to ensure that we get the non-POSIX basename(3)
with glibc but then a non-glibc section that ensures everyone else gets
POSIX basename(3). That should probably be removed (and maybe `basename`
poisoned) to prevent similar mistakes in future.
Bug: http://b/73123244
|
|
(Bionic _does_ do the malloc(0)!=0 thing, the problem is pedantic access
checking, not null dereference. So test count instead.)
|
|
|
|
|
|
In cksum, make -H pad with leading zeroes to 8 chars, don't output len with -N,
and don't output filename with zero arguments.
|
|
|
|
Requires echo 0 $((1<<30)) > /proc/sys/net/ipv4/ping_group_range (as root)
|
|
|
|
Switch the printf over to %s because the input is actually hex (so %d
is wrong), but without the leading "0x" that %x would require.
For some reason the NODE assignment wasn't providing any input to awk
(hence the hang), and awk wasn't looking for the correct field anyway.
The tests still fail for me:
losetup: /dev/block/loop0: No such device or address
losetup: /dev/block/loop0: No such device or address
losetup: file: No such file or directory
losetup: needs 1 arg (see "losetup --help")
But at least now they allow the other tests to continue!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bringing the zlib-based gzip/gunzip/zcat over to toybox is a problem for
another day, but at least the tests are easy...
(These tests pass with TEST_HOST and on the toolbox versions, but the
toybox toys are in pending and very broken.)
|
|
|
|
|
|
|
|
stuff syslog.h does into lib.c and portability.h
|
|
terminates parsing of Config.in at first blank line. This is because
getdelim() in portability.c returns -1 whenever the line comprises only
a single linefeed character. Fixing this was a trivial change to two lines
(see below), and config2help now works on OS X but I haven't regression
tested this on any other commands which rely on getdelim()"
|
|
|
|
Implement -c, fix endless loop when illegal char happens with
!outleft (don't need to check errno, just in == toybuf), refill
buffer each time (less efficient handling of illegal chars but never
have to worry about how long constitutes a valid sequence in unknown
encoding).
Fix input longer than 2k (memmove() has src/dest switched, second time through
loop in starts at offset inleft...) Made it start at beginning every time.
Switch iconv_open() error msg to show to/from and errno (rather than
hardwired english text).
|
|
|
|
|
|
The original xxd doesn't support -r with -i. The original also outputs
"unsigned char name[] = { ... };" for input other than stdin, but that
actually makes it less useful --- many languages support array
initializers, but far fewer support that exact declaration syntax.
Also fix the -c range checking and defaulting: ><= in the argument string
only works for floating point arguments.
Bug: http://b/64711851
|
|
Also make -0 and -E mutually exclusive (rather than just ignore -E
with -0).
Bug: https://github.com/landley/toybox/issues/78
|
|
A very simple implementation of fmt, good enough for my daily use of !!fmt
in vi to reflow checkin comments like this.
|
|
|
|
|
|
Found running LTP file system tests on Android.
Bug: http://b/70627145
|