hush/libbb
Denys Vlasenko 7485086f1e die_if_bad_username: tighten up a bit
function                                             old     new   delta
die_if_bad_username                                   77      97     +20

Based on patches from Tito.
The changes are:
better comments
we disallow '@' now - in practice such usernames will be unusable
use of the portable filename character set plus '$'
don't use isalnum as it allows non-ASCII letters in legacy 8-bit locales (pointed out by Rich Felker)
enforce maximum length of LOGIN_NAME_MAX (including NUL)
don't allow '$', '.', and '-' as first char
don't print the illegal char in error message as if it is a wide char it will be unreadable
print the position of the illegal character

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-08-09 04:05:13 +02:00
..
appletlib.c appletlib.c: do not use PAGE_SIZE for malloc tweaking 2011-06-03 21:39:42 +02:00
ask_confirmation.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_askpass.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_bswap_64.c *: deinline SWAP_xE64 on 32-bit CPUs. Wins !90 bytes both on 32 and 64 bits 2010-10-18 11:40:26 +02:00
bb_do_delay.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_pwd.c libbb: make user/group name cache strings longer (~27 chars) 2011-03-01 16:27:13 +01:00
bb_qsort.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_strtod.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_strtonum.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
change_identity.c *: introduce and use FAST_FUNC: regparm on i386, otherwise no-on 2008-06-27 02:52:20 +00:00
chomp.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
compare_string_array.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
concat_path_file.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
concat_subpath_file.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
Config.src libbb/lineedit: implement optional Ctrl-R history search 2011-07-11 07:36:59 +02:00
copy_file.c libbb/copy_file.c: use smallints instead of signed chars 2011-01-28 19:14:17 +01:00
copyfd.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
correct_password.c - add new applet mkpasswd(1) 2008-12-03 18:48:39 +00:00
crc32.c whitespace fixes 2011-02-03 00:05:48 +01:00
create_icmp_socket.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
create_icmp6_socket.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
default_error_retval.c libbb: xfunc_error_retval can be a byte 2010-09-01 16:04:24 +02:00
device_open.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
die_if_bad_username.c die_if_bad_username: tighten up a bit 2011-08-09 04:05:13 +02:00
dump.c fix "variable 'foo' set but not used" warnings 2011-05-13 20:57:01 +02:00
execable.c libbb: make BB_EXECVP/LP try to exec real binary if there's no /proc/self/exe 2011-02-02 03:28:56 +01:00
fclose_nonstdin.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
fflush_stdout_and_exit.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
fgets_str.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
find_mount_point.c df,find_mount_point: optionally don't ignore rootfs 2011-01-31 06:27:35 +01:00
find_pid_by_name.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
find_root_device.c plug a DIR* leak on error path 2010-12-28 10:25:03 +01:00
full_write.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
get_console.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
get_cpu_count.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
get_last_path_component.c find: cater for libc w/o FNM_CASEFOLD 2011-05-23 00:40:54 +02:00
get_line_from_file.c libbb: split bb_get_chunk_from_file and bb_get_chunk_with_continuation 2011-06-17 03:37:43 +02:00
get_shell_name.c forgot to add libbb/get_shell_name.c 2011-03-08 21:02:42 +01:00
get_volsize.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
getopt32.c fix !ENABLE_FEATURE_GETOPT_LONG build. Closes 3775 2011-05-29 04:24:52 +02:00
getpty.c FreeBSD compat 2011-01-24 17:04:59 +01:00
hash_md5_sha.c whitespace cleanup 2010-10-29 11:46:52 +02:00
hash_md5prime.c libbb: rename hash source files. no code changes 2010-10-18 10:38:18 +02:00
herror_msg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
human_readable.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
inet_common.c a few tweaks for bionic 2011-07-08 08:34:28 +02:00
info_msg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
inode_hash.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
isdirectory.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
Kbuild.src platform.h: tweaks for cygwin 2011-07-08 04:41:38 +02:00
kernel_version.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
last_char_is.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
lineedit_ptr_hack.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
lineedit.c libbb/lineedit: implement optional Ctrl-R history search 2011-07-11 07:36:59 +02:00
llist.c main: free suid_config list after use 2011-05-16 12:21:31 +02:00
login.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
loop.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
make_directory.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
makedev.c nicer looking ifdef in libbb/makedev.c 2011-01-24 23:53:12 +01:00
match_fstype.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
messages.c save 10 bytes on strings 2011-02-10 10:01:49 +01:00
mode_string.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
mtab.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
obscure.c a few tweaks for bionic 2011-07-08 08:34:28 +02:00
parse_config.c parse_config: use getline. BIG speedup with glibc (~40%). 2011-06-20 09:49:56 +02:00
parse_mode.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
perror_msg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
perror_nomsg_and_die.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
perror_nomsg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
pidfile.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
platform.c platform.c: provide getline implementation 2011-06-29 02:19:58 +02:00
print_flags.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
printable_string.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
printable.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
process_escape_sequence.c libbb/process_escape_sequence.c: fix recently broken handling of \\ 2010-10-25 12:14:21 +02:00
procps.c libbb/read_cmdline: prepend {comm} if different from argv0. Closes 3835. 2011-06-18 15:51:16 +02:00
progress.c libbb: make warning go away 2011-03-12 02:19:50 +01:00
ptr_to_globals.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
pw_encrypt_des.c des encrypt: fix goof with NUL byte added at the end as '.' 2009-05-01 03:41:25 +02:00
pw_encrypt_md5.c *: pass md5/shaN context pointer as 1st arg, not last 2010-10-16 20:45:27 +02:00
pw_encrypt_sha.c libbb/pw_encrypt_sha: forgot to move &ctx to 1st param here in sha hash rework 2010-12-01 13:57:25 +01:00
pw_encrypt.c adduser: safe username passing to passwd/addgroup 2011-05-13 03:19:01 +02:00
read_key.c less: optionally query terminal size via "ESC [ 6 n". Closes bug 2659. 2011-07-25 15:18:20 +02:00
read_printf.c hush: make read builtin interruptible. 2011-05-08 21:23:43 +02:00
read.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
README *: trailing empty lines removed 2010-07-26 01:49:12 +02:00
recursive_action.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
remove_file.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
rtc.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
run_shell.c *: s/"/bin/sh"/DEFAULT_SHELL, run_shell() API fix, remove unneeded strdup 2010-06-27 03:23:31 +02:00
safe_gethostname.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
safe_poll.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
safe_strncpy.c klogd: do not log partial lines 2010-10-19 23:07:49 +02:00
safe_write.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
selinux_common.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
setup_environment.c libbb/login/su: do not sanitize shell name twice 2011-03-06 18:49:40 +01:00
signals.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
simplify_path.c whitespace cleanup 2010-10-29 11:46:52 +02:00
single_argv.c basename,dirname,freeramdisk,rx,raidautorun,runsv,chvt: skip "--" argument 2011-04-11 03:58:30 +02:00
skip_whitespace.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
speed_table.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
str_tolower.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
strrstr.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
systemd_support.c typo fix 2011-02-12 01:56:25 +01:00
time.c libbb: better comment in parse_date 2011-01-17 14:23:42 +01:00
trim.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
u_signal_names.c kill[all[5]],pkill: make signal list show signal numbers, and show RTMIN/MAX 2011-01-03 13:08:58 +01:00
udp_io.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
unicode.c lineedit: fixes for CONFIG_UNICODE_USING_LOCALE=y 2011-03-27 01:18:07 +01:00
update_passwd.c type fix in comment 2010-11-03 02:48:43 +01:00
utmp.c move utmp.h include to libbb.h 2011-01-25 23:21:46 +01:00
uuencode.c move read_base64 to libbb/uuencode.c 2010-09-16 18:10:04 +02:00
vdprintf.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
verror_msg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
vfork_daemon_rexec.c libbb: spawn should remove child which failed to exec 2011-02-03 14:14:09 +01:00
warn_ignoring_args.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
wfopen_input.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
wfopen.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
write.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xatonum_template.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
xatonum.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xconnect.c libbb: make set_nport accept pointer to sockaddr, not to len_and_sockaddr. 2011-04-07 17:52:20 +02:00
xfunc_die.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xfuncs_printf.c *: introduce and use xmkstemp. -65 bytes. 2010-10-22 13:27:16 +02:00
xfuncs.c libbb: make ndelay_no/off a bit more clever. +14 bytes 2011-01-24 00:29:55 +01:00
xgetcwd.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
xgethostbyname.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xreadlink.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xrealloc_vector.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xregcomp.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00

Please see the LICENSE file for copyright information (GPLv2)

libbb is BusyBox's utility library.  All of this stuff used to be stuffed into
a single file named utility.c.  When I split utility.c to create libbb, some of
the very oldest stuff ended up without their original copyright and licensing
information (which is now lost in the mists of time).  If you see something
that you wrote that is mis-attributed, do let me know so we can fix that up.

	Erik Andersen
	<andersen@codepoet.org>