aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-02-05Silence a warning.Rob Landley
Once upon a time you could call fchown() and let it fail. Then gcc decided not using its return code was inconcievable, but you could typecast it to (void) to shut it up. Then gcc noticed people doing that and clutched its pearls and took it away, so I added an if() statement that does nothing with the result because we _expect_ this to fail when we're not root. Then clang started complaining about an if (); statement with the semicolon on the same line, but decided it's ok if the ; is on the next line (I.E. significant whitespace in C), so I'm adding an "assignemnt to self" that gets optimized away so it does a more _explicit_ nothing (the same way you suppress gcc's broken "this isn't used uninitialized" warnings). If the compilers weren't going to so much trouble to force the issue I might add code to only call fchown when we're UID 0, but I refuse to be coerced into it. (And if getpid() is still a system call instead of a vdso member then it doesn't actually _save_ us anything, the dentry should be hot and the permission check was just "if (!uid)" before selinux entered into it and we're operating on an fd so the security's the same.)
2017-02-05Default to width 80 when tty size probe fails (ala serial console).Rob Landley
(It was defaulting to 99999 but not FLAG_w, so it tried to _pad_ to 99999.)
2017-02-04Posix says stdio.h should define 'stdout' as a macro, and bionic turns it intoRob Landley
an array index, which doesn't work as a local variable name. So rename it.
2017-02-04Switch oneit to use xopen_stdio() for -c (oops) and switch XVFORK() to useRob Landley
__attribute__((returns_twice)) instead of noinline. Yes LLVM supports it: https://llvm.org/bugs/show_bug.cgi?id=6287
2017-02-03Fix typo in pgrep help.Elliott Hughes
2017-02-03Fix operator precedence error in df.Elliott Hughes
2017-02-01Build dependency tweak.Rob Landley
2017-02-01Extend default USER length to 12 and output "+" as last character of truncatedRob Landley
(left-justified) fields.
2017-01-31ps bugfix: len of TTY field doesn't include null terminator, so memmove shouldRob Landley
subtract one _less_ than /dev prefix length or string isn't terminated.
2017-01-30Cleanup leftover debris.Rob Landley
2017-01-30Improve file's ELF parsing.Elliott Hughes
An ELF file with no program headers is valid, and binutils leaves e_phentsize zero in that case. Fix the corruption check to cope. Also, since notes are in both the program and section headers (and I'm not aware of the possibility of having no sections but still having notes --- where would they be?), look for them in the section headers instead. Also extend the parsing of the .android.note.ident ELF note to include the NDK version information if present. (This won't be present for platform binaries, but will be present for NDK-built binaries such as app libraries.)
2017-01-29Izabera suggested seq should multiply to avoid accumulating rounding errorsRob Landley
from incrementing by a double.
2017-01-28Tweak -w help text to clarify that it prevents truncating _any_ fields, notRob Landley
just for terminal width.
2017-01-28Fix padto in draw_trim_esc() so it behaves like printf %*.*s and matches theRob Landley
comment (I.E. negative first value _left_ justifies). This makes ps display the same truncated values with and without a tty. Also add a few comments to the rest of the file.
2017-01-28Add missing `static`s and remove an unused function.Elliott Hughes
2017-01-28Whitespace.Rob Landley
2017-01-28modprobe: Small cleanup pass, described on the list.Rob Landley
2017-01-28modprobe: use finit_module when possibleSteve Muckle
The finit_module() system call, introduced in Linux 3.8, reads the module from a supplied file descriptor. This allows the kernel to do security checks based on the file's location.
2017-01-28modprobe: add -d option to specify module directory path(s)Steve Muckle
While most systems have their kernel modules, modules.dep etc located at /lib/modules/`uname -r` this is not always the case. The -d option may be used to specify a nonstandard path for these files. It may be used more than once to specify multiple directories where these files may be found.
2017-01-28top -H is more useful if it shows thread names.Elliott Hughes
I knew that just showing the process name was a divergence from traditional Android behavior, but I was curious to see whether anyone cared. Bug reports show that they do. I've not made this conditional on CFG_TOYBOX_ON_ANDROID on the assumption that this is more useful for everyone else too. (Why are you asking for per-thread information if you don't actually want to be able to identify individual threads?) Why not _just_ show the thread name? Because on Android at least, every process has lots of identically-named threads; everyone has GC threads, everyone has JIT threads, and so knowing _just_ the thread name is rarely useful. Why show thread name first? Because the kernel limits thread names to 15 bytes plus a NUL, so any left-over space should go to the process name, so that should come last. Why call the thread name THREAD? Because "CMD" isn't obviously "thread name" to folks who don't know how this is implemented behind the scenes. This change also removes an incorrect "usage:" comment. None of the other commands in this file duplicated their "usage:" lines, and this copy wasn't even close to being correct. Bug: http://b/34610082
2017-01-28Minor Android roadmap update.Elliott Hughes
2017-01-28Remove s6 from roadmap. (It wasn't in status.html anyway, haven't updatedRob Landley
our comparison in years, and email with the maintainer convinced me it's not a good yardstick for "what a traditional linux system expects to have".)
2017-01-28Answer another question.Rob Landley
2017-01-25Remove name length limit for system propertiesDimitry Ivanov
Android O removes name length limit for system properties. Use __system_property_read_callback instead of deprecated __system_property_read in getprop and remove check for property name length in setprop. Test: adb shell setprop debug.test.very.very.long.property.name valueforpropertywithlongname Test: adb shell getprop | grep debug.test.very.very.long.property.name Bug: http://b/33926793 Change-Id: I57ca99ea33283d069cd1b7b9f110ec9fb27f3d19
2017-01-25Promote microcom to net.Rob Landley
2017-01-25Switch escape charcter to ^] (ascii 29, doesn't conflict with emacs or joe).Rob Landley
Recognize full range of linux serial speeds (only error cfsetspeed returns is invalid speed value).
2017-01-17Fix microcom command-line help and -X.Elliott Hughes
2017-01-14Add "microcom" to pending.Elliott Hughes
Our device bringup folks wanted a simple serial console, both on the host and on the device. This is certainly enough to replace what I've been using personally on the host. I'd never heard of "microcom" until I asked the internets what busybox users use, so I don't care what we call this or what the options are called. (But would like to decide before it gets ossified in a million factory test scripts and the like!) The tool that this replaces for me defaulted to /dev/ttyUSB0, but since I don't know whether that default would be useful for most other people too, I left that out. Command-line history will solve my transition problem.
2017-01-14Quick and dirty fix for CVE-2016-6321 but seriously this is in pendingRob Landley
for a reason and I need to completely rewrite it.
2017-01-09More pending shell tests.Rob Landley
2017-01-04Implicit function declarations are an error, not a warning.Rob Landley
(The switch to 64 bits screwed up varargs: everything used to be promoted to 32 bits, but now it's 32 bits or 64 bits depending on type declarations, so you need the type declarations. Because promoting "char" arguments to 32 bits back when a megabyte was a lot of memory was ok, but promoting everything to 64 bits now that you can get 2 gigabytes of ram in a phone is unacceptable.)
2017-01-04Tweak install_airlock help text.Rob Landley
2017-01-04ftpget: implement -mMdDlL, put ftp transactions into their own function so -vRob Landley
can show both output and reply lines.
2017-01-04First stab at ftpget/ftpput. (Documents a lot of options other than basicRob Landley
upload/download that aren't implemented yet.)
2017-01-04Some lib fixes: mark xvfork() noinline, make xsendfile() return bytes copied,Rob Landley
make xsocket()'s returned fd CLOEXEC.
2017-01-04An option can't exclude itself, so "abc[-ab][!abc]" with "command -a -b"Rob Landley
shouldn't segfault falling off the end of the list trying to report a nonexistent error condition.
2017-01-02Alas, the backup list archive went down because https://lwn.net/Articles/695695/Rob Landley
and although it was partially restored by https://lwn.net/Articles/699704/ that didn't include this list.
2016-12-30Remove unnecessary casts in stat.c, fix a claimed buffer length.Elliott Hughes
POSIX does have a name for the struct timespec in struct stat.
2016-12-28Stop lying to the compiler in modprobe's read_line.Elliott Hughes
sizeof(int) != sizeof(size_t) for LP64, leading to hilarity^Wcrashes.
2016-12-28Admit that getprop requires selinux.Elliott Hughes
The "lsm" portability stuff could abstract this away, but Android doesn't need it, and getprop is meaningless on non-Android. (And if you're just building with the NDK, on recent enough versions of Android you won't be able to read most of the system properties anyway because access to them is increasingly restricted by selinux.)
2016-12-28Switch to bionic <sys/system_properties.h>.Elliott Hughes
Removes the dependency on libcutils for everything except ps.
2016-12-26Move hostid to toys/example and have it "default n".Rob Landley
A "globally unique 32 bit number" is a concept the Linux world has outgrown.
2016-12-26log: use error_msg instead of perror_msg when errno is meaningless.Elliott Hughes
2016-12-25Add test for last sort commit.Rob Landley
2016-12-25Fix a bug for sort. When the key_separator is not space, the sort ↵wxj
commandline tool fails to sort by the 3rd,4th,etc column. For example: when you exec $ sort -t',' -k 3n on a file which cotains: 1,2,3,4 2,3,4,1 4,1,2,3 3,4,1,2 you got: 4,1,2,3 1,2,3,4 2,3,4,1 3,4,1,2 but the expected output should be: 3,4,1,2 4,1,2,3 1,2,3,4 2,3,4,1 The bug is due to the dependency of "isspace(str[end])" at line 113. When searching for the non-space key_separator, the search stopped just at the position of first key_separator it met. The bug can be easily fixed by adding "end++" when the search have found one separator and exit the for loop.
2016-12-24Cleanup: Have get_hostname() handle its own lookup failures. Inline is_prefix().Rob Landley
Kernel can handle 64k maximum segment size.
2016-12-20Add units for -atime and friends. (Also legacy -amin alias, but not in help textRob Landley
because there's no -asec or -ahour.)
2016-12-11First cleanup pass on new dmesg.Rob Landley
2016-12-09Pass DIRTREE_PROC through the ps callbacks.Elliott Hughes
2016-12-08Have make airlock just warn about missing commands unless $PEDANTIC is sent.Rob Landley