platform/upstream/toybox.git
9 years agoSeparate 'userdel' from testing syntax.
Yeongdeok Suh [Wed, 18 Feb 2015 19:06:26 +0000 (13:06 -0600)]
Separate 'userdel' from testing syntax.

When I test toybox with toybox/tests/*.test scripts,
I got many false FAILs from it. So, I tried to fix useradd.test file.

9 years agoAdd --remove-destination longopt for -F because the host version doesn't have a short...
Rob Landley [Sun, 15 Feb 2015 21:44:26 +0000 (15:44 -0600)]
Add --remove-destination longopt for -F because the host version doesn't have a shortopt for it.

9 years agoOnly discard optargs in toy_exec() after finding the command to run (otherwise the...
Rob Landley [Sun, 15 Feb 2015 21:27:43 +0000 (15:27 -0600)]
Only discard optargs in toy_exec() after finding the command to run (otherwise the fallback exevp() segfaults).

9 years agoMake egrep and fgrep build standalone.
Rob Landley [Sat, 14 Feb 2015 20:59:30 +0000 (14:59 -0600)]
Make egrep and fgrep build standalone.

9 years agoFix --help for single.sh builds.
Rob Landley [Sat, 14 Feb 2015 20:54:36 +0000 (14:54 -0600)]
Fix --help for single.sh builds.

9 years agoSplit out unix2dos so scripts/single.sh and "make change" can build it standalone.
Rob Landley [Sat, 14 Feb 2015 20:05:00 +0000 (14:05 -0600)]
Split out unix2dos so scripts/single.sh and "make change" can build it standalone.

9 years agoMove guts of "make change" to scripts/change.sh, don't try to build sh or help standa...
Rob Landley [Sat, 14 Feb 2015 07:08:15 +0000 (01:08 -0600)]
Move guts of "make change" to scripts/change.sh, don't try to build sh or help standalone.

sh builtin commands need multiplexer, help describes other enabled commands.

9 years agoFix bug introduced by last commit (print template instead of toybuf).
Rob Landley [Thu, 12 Feb 2015 22:41:59 +0000 (16:41 -0600)]
Fix bug introduced by last commit (print template instead of toybuf).

Also, xstrdup() the unmodified template because changing the environment string
could make the changed version show up in "ps".

9 years agoOnly apply mktemp directory to targets that aren't already paths.
Rob Landley [Wed, 11 Feb 2015 23:10:28 +0000 (17:10 -0600)]
Only apply mktemp directory to targets that aren't already paths.

9 years agoFix longopts (pointed out by Hyejin Kim).
Rob Landley [Wed, 11 Feb 2015 04:51:23 +0000 (22:51 -0600)]
Fix longopts (pointed out by Hyejin Kim).

9 years agoOne more cleanup pass on hwclock factoring out common code.
Rob Landley [Mon, 9 Feb 2015 23:47:29 +0000 (17:47 -0600)]
One more cleanup pass on hwclock factoring out common code.

9 years agoInline rtc_open() and get_rtc_seconds(), perform resulting cleanups.
Rob Landley [Mon, 9 Feb 2015 23:33:59 +0000 (17:33 -0600)]
Inline rtc_open() and get_rtc_seconds(), perform resulting cleanups.

9 years agoCleanup/refactoring pass on hwclock.
Rob Landley [Mon, 9 Feb 2015 22:34:24 +0000 (16:34 -0600)]
Cleanup/refactoring pass on hwclock.

Inline open_wall_clock_rtc() into rtc_open(), factor out xtzset(),
inline set_sysclock_from_hwclock(), set_hwclock_from_sysclock(),
and set_sysclock_timezone().

/etc/adjtime is short enough we don't need to bother with a break.

The final "else" case in main() should always trigger because >0 in optstr
says "at most zero arguments", so the || at the end is always true, so
take the test off.

9 years agoPromote chcon to "other".
Rob Landley [Sun, 8 Feb 2015 22:38:38 +0000 (16:38 -0600)]
Promote chcon to "other".

9 years agoCleanup pass on chcon.
Rob Landley [Sun, 8 Feb 2015 22:38:11 +0000 (16:38 -0600)]
Cleanup pass on chcon.

9 years agoRewrite of a patch from Elliott Hughes to implement touch -h and switch API to utimen...
Rob Landley [Sun, 8 Feb 2015 22:33:24 +0000 (16:33 -0600)]
Rewrite of a patch from Elliott Hughes to implement touch -h and switch API to utimensat() which offers nanosecond granularity and UTIME_OMIT/UTIME_NOW.

9 years agoFor some reason, ifconfig was explicitly excluding "ifconfig lo:0 127.0.0.2" style...
Rob Landley [Sun, 8 Feb 2015 22:27:30 +0000 (16:27 -0600)]
For some reason, ifconfig was explicitly excluding "ifconfig lo:0 127.0.0.2" style alias address assignments. No idea why.

9 years agonetcfg is being removed, but shows up in the toybox roadmap.
Elliott Hughes [Sun, 8 Feb 2015 01:51:27 +0000 (19:51 -0600)]
netcfg is being removed, but shows up in the toybox roadmap.

9 years agoShameless meddling.
Rob Landley [Sun, 8 Feb 2015 01:45:23 +0000 (19:45 -0600)]
Shameless meddling.

9 years agoUse $TMPDIR if set (necessary on Android, where there is no /tmp).
Elliot Hughes [Sun, 8 Feb 2015 01:27:59 +0000 (19:27 -0600)]
Use $TMPDIR if set (necessary on Android, where there is no /tmp).
Include full template in error messages.
Don't report success on failure with -q.
Avoid unnecessary allocation.
Fix "xxxxxx" versus "XXXXXX" confusion.

9 years agoBuild standalone commands where "depends on" config entries need to be switched on.
Rob Landley [Sat, 7 Feb 2015 23:20:23 +0000 (17:20 -0600)]
Build standalone commands where "depends on" config entries need to be switched on.

9 years agoClean up the output of "make change".
Rob Landley [Sat, 7 Feb 2015 23:19:38 +0000 (17:19 -0600)]
Clean up the output of "make change".

9 years agoRemove xexec_optargs().
Rob Landley [Sat, 7 Feb 2015 22:23:59 +0000 (16:23 -0600)]
Remove xexec_optargs().

9 years agoCleanup pass on env, removing exec_optargs().
Rob Landley [Sat, 7 Feb 2015 22:23:03 +0000 (16:23 -0600)]
Cleanup pass on env, removing exec_optargs().

9 years agoMake toy_exec() check if argc is in optargs and deal with it there so we don't need...
Rob Landley [Sat, 7 Feb 2015 22:17:44 +0000 (16:17 -0600)]
Make toy_exec() check if argc is in optargs and deal with it there so we don't need a separate xexec_optargs().

9 years agoMerge unshare and nsenter (promoting and cleaning up nsenter).
Rob Landley [Sat, 7 Feb 2015 21:32:22 +0000 (15:32 -0600)]
Merge unshare and nsenter (promoting and cleaning up nsenter).

Needs more testing, don't have a test environment set up for this yet...

9 years agoIn rm, init using to AT_REMOVEDIR in the dir case earlier.
Rob Landley [Fri, 6 Feb 2015 23:31:52 +0000 (17:31 -0600)]
In rm, init using to AT_REMOVEDIR in the dir case earlier.

(If you had a chmod 000 directory and did rm -r on it without -f, after the prompt it would complain it was a directory.)

9 years agoAlright, the Android guys agree with the musl guys: faccessat(AT_SYMLINK_NOFOLLOW...
Rob Landley [Fri, 6 Feb 2015 22:42:44 +0000 (16:42 -0600)]
Alright, the Android guys agree with the musl guys: faccessat(AT_SYMLINK_NOFOLLOW) is not supported.

9 years agoCommit 1061 said "this gets expand off my to-review list". Remove it from the list.
Rob Landley [Sun, 25 Jan 2015 20:04:51 +0000 (14:04 -0600)]
Commit 1061 said "this gets expand off my to-review list". Remove it from the list.

9 years agoCleanup mountpoint and remove it from the pending README.
Rob Landley [Sun, 25 Jan 2015 19:11:58 +0000 (13:11 -0600)]
Cleanup mountpoint and remove it from the pending README.

9 years agobootchartd: Removing wrong free call to non-malloc'ed string.
Luis Felipe Strano Moraes [Thu, 22 Jan 2015 22:29:34 +0000 (16:29 -0600)]
bootchartd: Removing wrong free call to non-malloc'ed string.

9 years agoFix sed s//\[newline]/ line continuations.
Rob Landley [Thu, 22 Jan 2015 08:18:30 +0000 (02:18 -0600)]
Fix sed s//\[newline]/ line continuations.

The problem was that readline() was returning a newline at the end of each
string, which wasn't getting stripped in the parser and thus \ wasn't at the
end of a line for -f, it was escaping a literal newline, so the continuation
logic didn't trigger. Remove some redundant null checks while we're at it,
and don't bother terminating a string we don't return (yes we leak memory
in an error path, but it's about to error_exit() anyway).

9 years agofix hwclock's rtc selection
Elliott Hughes [Tue, 20 Jan 2015 22:03:29 +0000 (16:03 -0600)]
fix hwclock's rtc selection

For systems using /dev/rtcN, /dev/rtc0 isn't necessarily the RTC
that's used to provide the system time at boot time. We need to search
for the RTC whose /sys/class/rtc/rtcN/hctosys contains "1".

9 years agofix typo in printf
Elliott Hughes [Tue, 20 Jan 2015 21:52:41 +0000 (15:52 -0600)]
fix typo in printf

9 years agoRemove trailing whitespace.
Rob Landley [Sun, 18 Jan 2015 20:06:14 +0000 (14:06 -0600)]
Remove trailing whitespace.

9 years agoLift the basename/libgen.h shenanigans back out of portability.c and make it a static...
Rob Landley [Sun, 18 Jan 2015 19:44:24 +0000 (13:44 -0600)]
Lift the basename/libgen.h shenanigans back out of portability.c and make it a static inline in portability.h, and prototype dirname() while we're at it.

9 years agofix non-glibc basename(3) usage
Elliott Hughes [Sun, 18 Jan 2015 19:36:31 +0000 (13:36 -0600)]
fix non-glibc basename(3) usage

I considered a #else on the big #ifdef __GLIBC__ above, but that
seemed harder to follow.

9 years agoMove pty.h back to toys.h (under LSB 4.1 headers).
Rob Landley [Fri, 16 Jan 2015 19:55:32 +0000 (13:55 -0600)]
Move pty.h back to toys.h (under LSB 4.1 headers).

9 years agoAOSP master has <pty.h> and builds netcat/nc.
Elliott Hughes [Fri, 16 Jan 2015 19:49:23 +0000 (13:49 -0600)]
AOSP master has <pty.h> and builds netcat/nc.

9 years agoid.c #ifdefectomy. (ifdefs belong in headers, not in C code.)
Rob Landley [Fri, 16 Jan 2015 19:43:09 +0000 (13:43 -0600)]
id.c #ifdefectomy. (ifdefs belong in headers, not in C code.)

9 years agoThis patch adds a TOYBOX_SELINUX configuration option to control both
Elliott Hughes [Fri, 16 Jan 2015 19:36:53 +0000 (13:36 -0600)]
This patch adds a TOYBOX_SELINUX configuration option to control both
the SELinux commands (such as chcon) and the SELinux-specific options
to regular commands (such as ls -Z).

This lets us #include <selinux/selinux.h> in portability.h.

I've also fixed chcon to insist on being given the a context argument.

This patch also adds -Z to id and fixes id's regular output (-G should
be separated by spaces, non-G output should be separated by commas,
and you don't want a double comma where the egid is omitted from the
list of groups).

9 years agoAdded tag 0.5.1 for changeset 62a7d617e1ce
Rob Landley [Fri, 16 Jan 2015 01:09:08 +0000 (19:09 -0600)]
Added tag 0.5.1 for changeset 62a7d617e1ce

9 years agoSwitch netcat to stop parsing command line at first nonoption argument instead of...
Rob Landley [Wed, 14 Jan 2015 19:59:10 +0000 (13:59 -0600)]
Switch netcat to stop parsing command line at first nonoption argument instead of stopping after -l or -L.

Hyejin Kim tried "toyboxd nc nc -p 1234 -l rm mv ps" (which attempted to run
"nc rm mv ps") and "toybox nc -l -p 1234" (which attempted to run "-p 1234")
and found the behavior confusing. So make it work like xargs, where all
netcat options have to come before the start of any child command.

9 years agoMake touch -d miliseconds work. (Still only 6 digits precision instead of 9, but...
Rob Landley [Wed, 14 Jan 2015 19:54:34 +0000 (13:54 -0600)]
Make touch -d miliseconds work. (Still only 6 digits precision instead of 9, but it's a start.)

9 years agoi found a few problems while manually smoke testing toybox chown versus toolbox ...
Elliott Hughes [Wed, 14 Jan 2015 09:43:49 +0000 (03:43 -0600)]
i found a few problems while manually smoke testing toybox chown versus toolbox (NetBSD) chown...

new test:

and here's the patch to fix "owner:" ":group" and the ":" special case:

9 years agoLet chown build standalone.
Rob Landley [Wed, 14 Jan 2015 06:31:06 +0000 (00:31 -0600)]
Let chown build standalone.

9 years agosed bugfix: N or n at end of script would save the terminating NULL as the resume...
Rob Landley [Tue, 13 Jan 2015 10:28:19 +0000 (04:28 -0600)]
sed bugfix: N or n at end of script would save the terminating NULL as the resume position, so the script would restart from beginning.

9 years agosed s/// can have line continuations in the replacement part, with or without a ...
Rob Landley [Tue, 13 Jan 2015 09:35:37 +0000 (03:35 -0600)]
sed s/// can have line continuations in the replacement part, with or without a \ escaping the newline.

9 years agoPromote printf.
Rob Landley [Sun, 11 Jan 2015 16:17:58 +0000 (10:17 -0600)]
Promote printf.

9 years agoOne more bugfix for printf.c, with test suite entry. (Make %-3d etc work.)
Rob Landley [Sun, 11 Jan 2015 16:16:38 +0000 (10:16 -0600)]
One more bugfix for printf.c, with test suite entry. (Make %-3d etc work.)

9 years agoCleanup pass on printf.
Rob Landley [Sun, 11 Jan 2015 07:22:36 +0000 (01:22 -0600)]
Cleanup pass on printf.

Alas, passing a union as the last argument to printf does not appear to work
reliably, and there's no obvious way to manually assemble varargs in a portable
manner. So I have to repeat the printf once for each data type. Oh well.

9 years agoMore half-finished cleanup of printf.c, and more test suite entries.
Rob Landley [Sun, 11 Jan 2015 02:02:21 +0000 (20:02 -0600)]
More half-finished cleanup of printf.c, and more test suite entries.

9 years agoSince "printf" is a shell builtin, printf.test wasn't actually testing anything.
Rob Landley [Tue, 6 Jan 2015 21:06:51 +0000 (15:06 -0600)]
Since "printf" is a shell builtin, printf.test wasn't actually testing anything.

9 years agoMore printf cleanup, and test suite entries.
Rob Landley [Tue, 6 Jan 2015 18:07:20 +0000 (12:07 -0600)]
More printf cleanup, and test suite entries.

Fixes bug introduced last time where toys.optargs was both snapshotted and used
directly and the two fell out of sync.

9 years agoFix sed backslash parsing in square bracket pattern sections.
Rob Landley [Sun, 4 Jan 2015 09:50:52 +0000 (03:50 -0600)]
Fix sed backslash parsing in square bracket pattern sections.

9 years agoAnother cleanup pass on printf.
Rob Landley [Sun, 4 Jan 2015 02:31:41 +0000 (20:31 -0600)]
Another cleanup pass on printf.

9 years agoMove fflush() checking to xexit() and have exit paths in main() call that.
Rob Landley [Sat, 3 Jan 2015 22:25:36 +0000 (16:25 -0600)]
Move fflush() checking to xexit() and have exit paths in main() call that.

9 years agoCleanup pass on printf.
Rob Landley [Sat, 3 Jan 2015 03:28:39 +0000 (21:28 -0600)]
Cleanup pass on printf.

9 years agoNeed to update install.c for the changed OLDTOY() argument list.
Rob Landley [Fri, 2 Jan 2015 06:44:27 +0000 (00:44 -0600)]
Need to update install.c for the changed OLDTOY() argument list.

9 years agoTweak status.html
Rob Landley [Thu, 1 Jan 2015 23:37:57 +0000 (17:37 -0600)]
Tweak status.html

9 years agoSwitch a lot of strncpy() calls to xstrncpy().
Rob Landley [Thu, 1 Jan 2015 22:59:35 +0000 (16:59 -0600)]
Switch a lot of strncpy() calls to xstrncpy().

9 years agostrncpy(optptr, hname, strlen(hname)) is really just strcpy().
Rob Landley [Thu, 1 Jan 2015 22:49:55 +0000 (16:49 -0600)]
strncpy(optptr, hname, strlen(hname)) is really just strcpy().

9 years agostrtol() doesn't return error indicator for overflow, it just sets errno. So add...
Rob Landley [Thu, 1 Jan 2015 22:28:51 +0000 (16:28 -0600)]
strtol() doesn't return error indicator for overflow, it just sets errno. So add estrtol() (which clears errno first), and xstrtol() (which error_exit()s on overflow).

9 years agoDebris from flag handling rewrite: don't allow -^A to actually trigger.
Rob Landley [Thu, 1 Jan 2015 22:19:40 +0000 (16:19 -0600)]
Debris from flag handling rewrite: don't allow -^A to actually trigger.

9 years agotypo fixes
Elliott Hughes [Thu, 1 Jan 2015 16:58:59 +0000 (10:58 -0600)]
typo fixes

9 years agoFix for mix from Isaac Dunham (who can actually test it). (I tweaked the curly brackets.)
Rob Landley [Thu, 1 Jan 2015 04:38:48 +0000 (22:38 -0600)]
Fix for mix from Isaac Dunham (who can actually test it). (I tweaked the curly brackets.)

He says:

In the channel selection loop, "if (TT.chan)" had been combined with
a strcmp; the else conditionals were premised on if (TT.chan) alone.

The help text had been only partially updated for a couple option changes.

9 years agoRedo option parsing infrastructure so #define FORCE_FLAGS can unzero flag macros...
Rob Landley [Thu, 1 Jan 2015 03:30:59 +0000 (21:30 -0600)]
Redo option parsing infrastructure so #define FORCE_FLAGS can unzero flag macros for a disabled command (needed when multiple commands share infrastructure with a common set of flags).

This means the flag space is no longer packed, but leaves gaps where the zeroes
go. (Actual flag bit positions are the same for all configs.) Since the
option parsing needs to know where the holes are, the OPTSTR values are
now generated as part of flags.h with ascii 1 values for the disabled values.
(So generated/oldflags.h went away.)

This also means that the option string argument for OLDTOY() went away, it now
uses the same arguments as the NEWTOY() it references.

9 years agoWhen CP_MORE was disabled, the d flag was still in the [-exclusion] list at the end...
Rob Landley [Thu, 1 Jan 2015 03:23:37 +0000 (21:23 -0600)]
When CP_MORE was disabled, the d flag was still in the [-exclusion] list at the end and option parsing fell off the end looking for it (segfault) if DEBUG wasn't enabled to check for that.

9 years agoWhen you include the posix header libgen.h, glibc #defines basename to some random...
Rob Landley [Wed, 31 Dec 2014 22:22:31 +0000 (16:22 -0600)]
When you include the posix header libgen.h, glibc #defines basename to some random other symbol name (because gnu) and this screws up nontrivial macro expansions of NEWTOY(basename), so work around it in portability.h.

9 years agoLink to gmane web archive.
Rob Landley [Tue, 30 Dec 2014 20:49:02 +0000 (14:49 -0600)]
Link to gmane web archive.

9 years agoAnother random link for the design page.
Rob Landley [Sun, 28 Dec 2014 20:44:09 +0000 (14:44 -0600)]
Another random link for the design page.

9 years agoFluff out help text.
Rob Landley [Sun, 28 Dec 2014 20:38:14 +0000 (14:38 -0600)]
Fluff out help text.

9 years agoPromote mix
Rob Landley [Sat, 27 Dec 2014 19:52:40 +0000 (13:52 -0600)]
Promote mix

9 years agoCleanup mix.c.
Rob Landley [Sat, 27 Dec 2014 19:52:03 +0000 (13:52 -0600)]
Cleanup mix.c.

9 years agoTeach factor to accept whitespace separated arguments (reported by Robert Thompson).
Rob Landley [Wed, 24 Dec 2014 22:13:08 +0000 (16:13 -0600)]
Teach factor to accept whitespace separated arguments (reported by Robert Thompson).

(The diff looks bigger than it is because of reindenting.)

9 years agogetenforce and setenforce
Elliott Hughes [Wed, 24 Dec 2014 01:20:24 +0000 (19:20 -0600)]
getenforce and setenforce

two more easy SELinux commands:

9 years agothose of us who need to check in generated files find that 'tr' and
Elliott Hughes [Wed, 24 Dec 2014 01:17:13 +0000 (19:17 -0600)]
those of us who need to check in generated files find that 'tr' and
'traceroute' keep swapping places. self-inflicted, yes, but not much i
can do about it :-(

9 years agoMerge catv back into cat as discussed on the list. Add comments about infrastructure...
Rob Landley [Tue, 23 Dec 2014 19:29:47 +0000 (13:29 -0600)]
Merge catv back into cat as discussed on the list. Add comments about infrastructure upgrades needed to restore separate catv option.

9 years agoAllocate space for null terminator.
Rob Landley [Mon, 22 Dec 2014 23:04:47 +0000 (17:04 -0600)]
Allocate space for null terminator.

9 years agosed 'r' didn't work right.
Rob Landley [Mon, 22 Dec 2014 19:45:35 +0000 (13:45 -0600)]
sed 'r' didn't work right.

9 years agoAnother sed bug. (The e2fsprogs build uses multiple line continuations on the same...
Rob Landley [Mon, 22 Dec 2014 05:17:06 +0000 (23:17 -0600)]
Another sed bug. (The e2fsprogs build uses multiple line continuations on the same command.)

9 years agoPromote sed to posix.
Rob Landley [Sun, 21 Dec 2014 07:54:54 +0000 (01:54 -0600)]
Promote sed to posix.

9 years agosed: implement 'l'
Rob Landley [Sun, 21 Dec 2014 05:28:30 +0000 (23:28 -0600)]
sed: implement 'l'

9 years agoAdd tizen section to roadmap.
Rob Landley [Sat, 20 Dec 2014 20:58:03 +0000 (14:58 -0600)]
Add tizen section to roadmap.

9 years agoMore sed bugs.
Rob Landley [Sat, 20 Dec 2014 03:17:49 +0000 (21:17 -0600)]
More sed bugs.

1) Newline in -e after s/// was eaten as "whitespace before flags"
2) \\ needs to be passed through to regex to avoid "trailing \" error and
"\\n" is not a newline.

9 years agoDecouple cp and mv so mv uses its own --help text.
Rob Landley [Thu, 18 Dec 2014 17:13:35 +0000 (11:13 -0600)]
Decouple cp and mv so mv uses its own --help text.

MV still requires CP enabled until the flag generation logic gets updated.

9 years agoGive fstype its own config symbol (separate from blkid), and fix blkid not using...
Rob Landley [Thu, 18 Dec 2014 17:05:06 +0000 (11:05 -0600)]
Give fstype its own config symbol (separate from blkid), and fix blkid not using more accurate ext3/ext4 filesystem sub-type.

9 years agoFix yet another sed bug.
Rob Landley [Mon, 15 Dec 2014 09:34:55 +0000 (03:34 -0600)]
Fix yet another sed bug.

The s/// command would copy the \ of substitutions before deciding what to
do with them (generally overwriting the \ with the new data). When the
substitution was A) at the very end of the new string, B) resolved to nothing,
it could leave a trailing \ that didn't belong there and didn't get overwritten
because the "copy trailing data" part that copies the original string's null
terminator already happened before the \ overwrote it.

The ghostwheel() function restarts regexes after embedded NUL bytes, but
if the string it's passed is _longer_ than the length it's told then it
gets confused (and it means we're off the end of our allocation so segfaults
are likely).

Fix: test for \ first and move the "copy byte" logic into an else case.

9 years agoMake sed a\ line continuations work properly for different pattern input modes.
Rob Landley [Sun, 14 Dec 2014 19:51:28 +0000 (13:51 -0600)]
Make sed a\ line continuations work properly for different pattern input modes.

9 years agoFix bug in sed y/// where bytes in target but not in source were replaced by zeroes...
Rob Landley [Sun, 14 Dec 2014 00:35:11 +0000 (18:35 -0600)]
Fix bug in sed y/// where bytes in target but not in source were replaced by zeroes (nul terminator overwritten).

9 years agoLast sed bugfix broke 'b', fix it.
Rob Landley [Sat, 13 Dec 2014 18:27:51 +0000 (12:27 -0600)]
Last sed bugfix broke 'b', fix it.

9 years agoLeftover variable from factoring out base64_init() caused an unused variable warning.
Rob Landley [Sat, 13 Dec 2014 18:12:14 +0000 (12:12 -0600)]
Leftover variable from factoring out base64_init() caused an unused variable warning.

9 years agoOops. xfork() moved to portability.c and the config2help.c build wasn't including...
Rob Landley [Sat, 13 Dec 2014 18:09:25 +0000 (12:09 -0600)]
Oops. xfork() moved to portability.c and the config2help.c build wasn't including that. (Worked until I did a "make clean".)

9 years agoForgot to check in a header file for base64.
Rob Landley [Sat, 13 Dec 2014 17:59:37 +0000 (11:59 -0600)]
Forgot to check in a header file for base64.

9 years agoAdd "make help" entry for "make change".
Rob Landley [Sat, 13 Dec 2014 17:59:10 +0000 (11:59 -0600)]
Add "make help" entry for "make change".

9 years agoAdd base64.
Rob Landley [Sat, 13 Dec 2014 17:58:08 +0000 (11:58 -0600)]
Add base64.

The tizen guys wanted this. Yeah, I know there's base64 code in
uuencode/uudecode, but that this has -i, input lines aren't of fixed length,
encode/decode are in same file, there's no prefix/suffix code, it always
writes to stdout... Eliminating the code duplication wouldn't be worth
the if/else I'd have to add, so I just did a new one.

Factored out the base64 table init into lib.c though: that was worth sharing.

9 years agoRemove more strncpy() calls.
Rob Landley [Sat, 13 Dec 2014 17:56:41 +0000 (11:56 -0600)]
Remove more strncpy() calls.

The semantics of strncat() and strncpy() are non-obvious, so let's not use 'em.
Both zero all their remaining buffer space, and with strncat() the size is
the space left at the _end_ of the string (not the size of the buffer) so
it's way too easy to stomp memory you don't own. As long as we have to measure
stuff ourselves to get it right, just use memcpy().

9 years agohere's a patch that should let us replace toolbox's chcon.
Elliott Hughes [Fri, 12 Dec 2014 02:17:28 +0000 (20:17 -0600)]
here's a patch that should let us replace toolbox's chcon.
(it also adds a feature, -R, because toybox makes that so easy.)

you'll probably want fancier configuration here because although the
--as-needed works okay, a typical Ubuntu box will have the .so but not
the .h files. i did consider adding a toys/selinux/ directory, but
given that existing tools like ls and id will want -Z SELinux options,
i wasn't sure whether you'd think it was worth segregating the
SELinux-only toys.

note that this won't help the tizen smack users (and patch for smack
won't help SELinux users). so you might want to think about where
you'd like us to be aiming: #if USE_SELINUX/USE_SMACK in all the
relevant places, or a toys/selinux and a toys/smack (though we'd still
need #if in at least ls and id), or a lib/security.c that concentrates
all the differences into one file?

9 years agoMake unescape_delimited_string() copy the string so error reporting isn't so messed up.
Rob Landley [Thu, 11 Dec 2014 00:59:22 +0000 (18:59 -0600)]
Make unescape_delimited_string() copy the string so error reporting isn't so messed up.

9 years agoFix some sed bugs and improve error reporting.
Rob Landley [Wed, 10 Dec 2014 23:59:00 +0000 (17:59 -0600)]
Fix some sed bugs and improve error reporting.

A newline after 'b' commands in -e command line patterns was being discarded
as whitespace, a single element regex match on a {} was leaving stale state
for the next line, and giant -e blobs of instructions were saying things
like problem at character 432 (note: nulls inserted for regex processing
aren't always cleaned up, screws up error reporting).