| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
The original (1.16) code was mostly correct, but this version is
far clearer.
Casts suggested to now be obfuscations by: bde
|
|
|
|
| |
MFC after: 2 weeks
|
| |
|
| |
|
|
|
|
| |
Idea from: Theo de Raadt <deraadt@openbsd.org>
|
|
|
|
| |
Submitted by: Mike Barcroft <mike@q9media.com>
|
| |
|
|
|
|
|
|
|
| |
string after each successful snprintf() call. This makes apply(1) work
*correctly*, although the whole snprintf() deal really should be redone.
Bug noted by: nectar (about 3 weeks ago)
|
|
|
|
|
|
|
|
|
| |
declarations & their arguments; use only one tab after types; restore the
type of argv to sync with src tree style; sort new variables under main();
fix continuation indents; remove extra blank line before free()'s. Still
to do: fix snprintf() handling as nectar & bde suggested to me.
Submitted by: bde
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BDECFLAGS; ANSIfy; use EXEC instead of "exec " where appropriate; use
proper types (size_t, int); use proper variable names for certain things;
get rid of static 'cache' style stuff by moving and sanitizing the
original SHELL checking code to main(), this also makes it easier to
free() the string; rename file-scope system() to exec_shell(); use
snprintf() everywhere instead of sprintf(); actually remember to free()
other malloc()'d char pointers in main().
I left out the -s option in this revision along with getusershell()
checking because of objections made by Warner Losh <imp> and Garrett
Wollman <wollman>. I agreed with their assertions that such code was
unnecessary in a program like this.
I dare people to make this coredump now.
Some suggestions: nectar (snprintf() truncate checking)
Reviewed by: markm, eivind, jedgar
Tortured by: examples in apply(1), fuzz(1),
and a lot of random ideas I came up with
|
|
|
|
|
|
| |
and make sure it works next time.
Submitted by: markm, jhb
|
|
|
|
| |
isn't found in /etc/shells.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
especially on strings passed from argv; rename system() to exec_shell(),
and make it static; use strlcpy() and make sure it works; use proper
type (size_t) to be passed to malloc()/realloc().
Use getusershell() to make sure the SHELL environment variable passed is
safe to use. Add new option -s to allow anal users to pass things like
perl; this option is here along with getusershell() checking since the
such checking is only intended to affect things like suidperl that might
call apply(1).
Reviewed by: markm, jhb, C. Stephen Gunn <csg@waterspout.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This would have been commit #2 which was "Obtained from: BSD/OS" except
their code is buggy (they call err() if the execl() fails, which will
incorrectly call exit()), so instead this is:
Obtained from: NetBSD
|
|
|
|
| |
Document -d flag. Rework SYNOPSIS section
|
|
|
|
| |
Noticed by: Thomas Stromberg <tstromberg@rtci.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
track.
The $Id$ line is normally at the bottom of the main comment block in the
man page, separated from the rest of the manpage by an empty comment,
like so;
.\" $Id$
.\"
If the immediately preceding comment is a @(#) format ID marker than the
the $Id$ will line up underneath it with no intervening blank lines.
Otherwise, an additional blank line is inserted.
Approved by: bde
|
|
|
|
| |
Misc small cleanups.
|
|
|
|
| |
* Clean up waitpid parameter handling.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
execvp() in the child branch of a vfork(). Changed to use fork()
instead.
Some of these (mv, find, apply, xargs) might benefit greatly from
being rewritten to use vfork() properly.
PR: Loosely related to bin/8252
Approved by: jkh and bde
|
|
|
|
|
|
| |
PR: 6599
Reviewed by: phk
Submitted by: Josh Gilliam <josh@quick.net>
|
| |
|
|
|
|
| |
posix standard on the topic.
|
|
|
|
|
| |
Submitted by: Masanobu Saitoh <msaitoh@spa.is.uec.ac.jp>
Obtained from: NetBSD-bugs mailing list
|
| |
|
|
|